{
  "components": {
    "schemas": {
      "AIResultSAST": {
        "properties": {
          "attack_vector": {
            "description": "Attack vector breakdown table when no exploit reproduction is emitted (the \"## Attack Vector\" section).",
            "type": "string"
          },
          "classification": {
            "$ref": "#/components/schemas/v1FindingClassification"
          },
          "context": {
            "$ref": "#/components/schemas/v1AISASTContext"
          },
          "cwes": {
            "description": "The CWEs of the vulnerability.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dataflow": {
            "description": "Deprecated: use call_stack instead.\nOne or more source locations representing the data flow path from a source to a sink.\nThe locations are ordered and include the source, any intermediate nodes, and the sink.\nIf only a single location is provided, it represents the sink location only.",
            "items": {
              "$ref": "#/components/schemas/v1SourceLocation"
            },
            "type": "array"
          },
          "exploit_reproduction": {
            "description": "Step-by-step exploit reproduction for high/critical true positives (the \"## Exploit Reproduction\" section).",
            "type": "string"
          },
          "fixed_strikes": {
            "description": "Strictly consecutive scheduled-refresh FIXED verdicts. Deletion requires\ntwo: the first only stamps this counter and keeps the finding due. Reset\nby any non-FIXED outcome (STILL_PRESENT, UNKNOWN, agent error).",
            "format": "int32",
            "type": "integer"
          },
          "language": {
            "description": "Programming language of the file where this result was found.",
            "type": "string"
          },
          "last_scan": {
            "description": "When the scheduled AI SAST refresh last revalidated this finding. Unset\nfor findings created before refresh tracking; drives refresh staleness.",
            "format": "date-time",
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/v1SourceLocation"
          },
          "refresh_attempts": {
            "description": "Consecutive inconclusive scheduled-refresh attempts (agent error or\nUNKNOWN verdict); at the retry cap the refresh re-baselines last_scan\ninstead of retrying forever. Reset on a definitive verdict.",
            "format": "int32",
            "type": "integer"
          },
          "remediation": {
            "description": "Recommended remediation, including any unified-diff fix (the \"## Remediation Guidance\" section).",
            "type": "string"
          },
          "security_controls": {
            "description": "Security controls assessment table (the \"## Security Controls\" section).",
            "type": "string"
          },
          "severity_scoring": {
            "description": "Severity scoring breakdown (the \"## Severity Scoring\" section).",
            "type": "string"
          },
          "summary": {
            "description": "Short prose summary of the vulnerability (the \"## Summary\" section).",
            "type": "string"
          },
          "validation_outcome": {
            "description": "Validation outcome for unknown findings (the \"## Validation Outcome\" section).",
            "type": "string"
          },
          "verification_scorecard": {
            "description": "Verification scorecard with per-criterion verdicts (the \"## Verification Scorecard\" section).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AISastAnalysisParametersAISastAnalysisMode": {
        "default": "AI_SAST_ANALYSIS_MODE_UNSPECIFIED",
        "description": " - AI_SAST_ANALYSIS_MODE_UNSPECIFIED: Options available for peforming AI triage of Sast Findings.\n - AI_SAST_ANALYSIS_MODE_AGENT_FALLBACK: AI_SAST_ANALYSIS_AGENT_ZEROSHOT_CODE_API = 4; // TODO add when ready.",
        "enum": [
          "AI_SAST_ANALYSIS_MODE_UNSPECIFIED",
          "AI_SAST_ANALYSIS_MODE_AGENT",
          "AI_SAST_ANALYSIS_MODE_AGENT_DEEP",
          "AI_SAST_ANALYSIS_MODE_AGENT_FALLBACK"
        ],
        "type": "string"
      },
      "APIKeyServiceCreateAPIKeyBody": {
        "description": "Manages the system API keys.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "propagate": {
            "description": "Indicates whether the API key can be used for the child namespaces.",
            "type": "boolean"
          },
          "spec": {
            "$ref": "#/components/schemas/v1APIKeySpec"
          },
          "tenant_meta": {
            "description": "APIKeys are namespaced objects.",
            "title": "APIKeys are namespaced objects.",
            "type": "object"
          },
          "uuid": {
            "description": "The UUID of an API key resource.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta"
        ],
        "type": "object"
      },
      "AffectedSource": {
        "default": "SOURCE_UNSPECIFIED",
        "enum": [
          "SOURCE_UNSPECIFIED",
          "SOURCE_OSV",
          "SOURCE_ENDOR",
          "SOURCE_OVAL"
        ],
        "type": "string"
      },
      "AutoDetectResultDetectedToolChainVersion": {
        "description": "Message for a detected toolchain version.",
        "properties": {
          "file": {
            "description": "File where the version was detected.",
            "type": "string"
          },
          "version": {
            "description": "Version number found in the file.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AutoDetectResultDetectedToolChainVersionList": {
        "description": "Message for detected toolchain versions.",
        "properties": {
          "values": {
            "description": "Toolchain file versions.",
            "items": {
              "$ref": "#/components/schemas/AutoDetectResultDetectedToolChainVersion"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "AutomatedPRParametersLanguageParameters": {
        "properties": {
          "assignees": {
            "description": "List of assignees for the pull request.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "labels": {
            "description": "List of labels for the pull request.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "reviewers": {
            "description": "List of reviewers for the pull request.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "AutomatedScanParametersBazelConfiguration": {
        "properties": {
          "bazel_exclude_targets": {
            "description": "targets that should be excluded.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "bazel_include_targets": {
            "description": "targets that should be included.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "bazel_show_internal_targets": {
            "description": "show internal targets as dependencies.",
            "type": "boolean"
          },
          "bazel_targets_query": {
            "description": "query that should be used for bazel scans.",
            "type": "string"
          },
          "bazel_workspace_path": {
            "description": "bazel workspace path.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "BomDependency": {
        "properties": {
          "abstract": {
            "description": "Whether this is an abstract dependency, such as a secondary BOM file.",
            "type": "boolean"
          },
          "cocoapod_dependency_scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "composition_metadata": {
            "$ref": "#/components/schemas/v1ContainerCompositionMetadata"
          },
          "conan_dependency_scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "container_layers": {
            "description": "A list of layers where a dependency is introduced in final the container\nimage. It is an optional field. Each entry contains the layer ID (the\nSHA256 digest of the layer) and the file locations within the layer that\nindicate the presence of the dependency in the container.",
            "items": {
              "$ref": "#/components/schemas/v1ContainerDependencyLayer"
            },
            "type": "array"
          },
          "dependency_scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "eol_timestamp": {
            "description": "End of life timestamp of the dependency if known.",
            "format": "date-time",
            "type": "string"
          },
          "file_location_remote_paths": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Maps each entry in file_locations (the local, scanned-workspace path)\nto the matched path in the dependency's own upstream source, when\nknown. Only populated for IMPORTED_TYPE_SEGMENT_MATCH dependencies.",
            "type": "object"
          },
          "file_locations": {
            "description": "An optional field for BOM dependencies that are either\nvendored or discovered in containers and identify the list of file\nlocations that this dependency is seen at.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "gem_dependency_scope": {
            "$ref": "#/components/schemas/PackageVersionDependencyGemDependencySpecScope"
          },
          "github_action_kind": {
            "$ref": "#/components/schemas/PackageVersionDependencyGitHubActionDependencySpecScope"
          },
          "golang_dependency_scope": {
            "$ref": "#/components/schemas/PackageVersionDependencyGoDependencySpecScope"
          },
          "hugging_face_dependency_scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "import_path": {
            "description": "The path the source imports this dependency by, set only when it differs\nfrom the path inside name. Empty whenever the two agree, which is every\nordinary dependency.\n\nA Golang \"replace\" that redirects one module path to another leaves the\nsource importing the original path, so name carries the module that\nsupplied the code and this carries the path the compiler sees.",
            "type": "string"
          },
          "imported_type": {
            "$ref": "#/components/schemas/DependencyImportedType"
          },
          "js_dependency_scope": {
            "$ref": "#/components/schemas/PackageVersionDependencyNpmDependencySpecScope"
          },
          "locked": {
            "description": "Set to true if the dependency is fixed to a specific version by a\nlock file at install time (outcome).\n\nIf a dependency is locked, but not pinned, it could drift if the\nlock file is regenerated (for example, by 'npm update').",
            "type": "boolean"
          },
          "maven_dependency_scope": {
            "$ref": "#/components/schemas/PackageVersionDependencyMavenDependencySpecScope"
          },
          "name": {
            "type": "string"
          },
          "nuget_dependency_scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "packagist_dependency_scope": {
            "$ref": "#/components/schemas/PackageVersionDependencyPackagistDependencySpecScope"
          },
          "patched": {
            "description": "patched indicates whether the dependency version was patched or not.",
            "type": "boolean"
          },
          "pinned": {
            "description": "Set to true of the dependency is fixed to a specific version by a\nmanifest file (intent).\n\nFor example, in package.json, \"lodash\": \"4.17.21\" is pinned while\n\"lodash\": \"^4.0.0\" is not (it's a range, \"any 4.x\").",
            "type": "boolean"
          },
          "platform_source": {
            "$ref": "#/components/schemas/v1PlatformSource"
          },
          "public": {
            "description": "A boolean to know if the dependency is public or not.\nThis field might not be set.",
            "type": "boolean"
          },
          "purl": {
            "description": "purl is the package URL notation of the dependency. Populated only for\ncontainers and OS packages.",
            "type": "string"
          },
          "pypi_dependency_scope": {
            "$ref": "#/components/schemas/PackageVersionDependencyPypiDependencySpecScope"
          },
          "release_date": {
            "description": "The date that the dependency was released, if known.",
            "format": "date-time",
            "type": "string"
          },
          "runtime_files": {
            "description": "A list of files accessed when a dependency is called at runtime in the container image.\nThis is an optional field. It is only set when a\ndependency is found to be used at runtime in the container image.",
            "items": {
              "$ref": "#/components/schemas/v1ContainerRuntimeDependencyFile"
            },
            "type": "array"
          },
          "rust_dependency_kind": {
            "$ref": "#/components/schemas/CargoDependencySpecDependencyKind"
          },
          "source_repository_http_clone_url": {
            "description": "The HTTP clone URL of the dependency if found. This field might not be\nset.",
            "type": "string"
          },
          "source_repository_ref": {
            "description": "The ref of the source repsotiory. This can be a tag or a commit SHA.\nThis field might not be set.",
            "type": "string"
          },
          "swift_dependency_scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "targets": {
            "description": "The targets to which this dependency applies.\nIf there is no target then this dependency will be applicable for all the\ntargets. A dependency can be valid for multiple targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "user_app_dep": {
            "description": "For container BOMs, set to true if this is a user application (i.e. the user associated it with an SCA scan).",
            "type": "boolean"
          },
          "vendored": {
            "description": "Whether this is dependency comes from vendored code or not.",
            "type": "boolean"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "BomDependencyFile": {
        "properties": {
          "path": {
            "description": "Relative path of the dependency file used to compute the BOM.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CVSSNodeCpeMatch": {
        "properties": {
          "criteria": {
            "type": "string"
          },
          "match_criteria_id": {
            "type": "string"
          },
          "version_end_excluding": {
            "type": "string"
          },
          "version_end_including": {
            "type": "string"
          },
          "version_start_excluding": {
            "type": "string"
          },
          "version_start_including": {
            "type": "string"
          },
          "vulnerable": {
            "type": "boolean"
          }
        },
        "required": [
          "vulnerable",
          "criteria",
          "match_criteria_id"
        ],
        "type": "object"
      },
      "CVSSV3SeverityLevel": {
        "default": "LEVEL_UNSPECIFIED",
        "enum": [
          "LEVEL_UNSPECIFIED",
          "LEVEL_NONE",
          "LEVEL_LOW",
          "LEVEL_MEDIUM",
          "LEVEL_HIGH",
          "LEVEL_CRITICAL"
        ],
        "type": "string"
      },
      "CVSSV4SeverityV4Level": {
        "default": "V4_LEVEL_UNSPECIFIED",
        "enum": [
          "V4_LEVEL_UNSPECIFIED",
          "V4_LEVEL_NONE",
          "V4_LEVEL_LOW",
          "V4_LEVEL_MEDIUM",
          "V4_LEVEL_HIGH",
          "V4_LEVEL_CRITICAL"
        ],
        "type": "string"
      },
      "CargoDependencySpecCargoVersionReq": {
        "description": "A crate with a matching name and repository can't be bound to a\ndependency if its version does not match this requirement.",
        "properties": {
          "major": {
            "format": "uint64",
            "type": "string"
          },
          "minor": {
            "format": "uint64",
            "type": "string"
          },
          "op": {
            "$ref": "#/components/schemas/CargoVersionReqOp"
          },
          "patch": {
            "description": "/ Patch is only allowed if minor is present.",
            "format": "uint64",
            "type": "string"
          },
          "pre": {
            "type": "string"
          }
        },
        "required": [
          "op",
          "major"
        ],
        "type": "object"
      },
      "CargoDependencySpecCfg": {
        "description": "A cfg expression, like cfg(windows).",
        "properties": {
          "expr": {
            "$ref": "#/components/schemas/CfgCfgExpr"
          }
        },
        "required": [
          "expr"
        ],
        "type": "object"
      },
      "CargoDependencySpecCfgAny": {
        "properties": {
          "expr": {
            "items": {
              "$ref": "#/components/schemas/CfgCfgExpr"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CargoDependencySpecCfgValue": {
        "properties": {
          "name": {
            "description": "A named cfg value, like unix.",
            "type": "string"
          },
          "pair": {
            "$ref": "#/components/schemas/CfgKeyPair"
          }
        },
        "type": "object"
      },
      "CargoDependencySpecDependencyKind": {
        "default": "DEPENDENCY_KIND_UNSPECIFIED",
        "description": " - DEPENDENCY_KIND_UNSPECIFIED: Unspecified kind indicates that we are unsure about the type of\ndependency.\n - DEPENDENCY_KIND_NORMAL: Normal kind is the default type of dependency.\n - DEPENDENCY_KIND_DEVELOPMENT: Development kind indicates that the dependency is used for testing\npurposes.\n - DEPENDENCY_KIND_BUILD: Build kind indicates that the dependency is solely used for buildingthe\npackage.",
        "enum": [
          "DEPENDENCY_KIND_UNSPECIFIED",
          "DEPENDENCY_KIND_NORMAL",
          "DEPENDENCY_KIND_DEVELOPMENT",
          "DEPENDENCY_KIND_BUILD"
        ],
        "type": "string"
      },
      "CargoDependencySpecNamedPlatform": {
        "description": "A named platform, like x86_64-apple-darwin.",
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "CargoVersionReqOp": {
        "default": "OP_UNSPECIFIED",
        "enum": [
          "OP_UNSPECIFIED",
          "OP_EXACT",
          "OP_GREATER",
          "OP_GREATEREQ",
          "OP_LESS",
          "OP_LESSEQ",
          "OP_TILDE",
          "OP_CARET",
          "OP_WILDCARD"
        ],
        "type": "string"
      },
      "CfgAll": {
        "properties": {
          "expr": {
            "items": {
              "$ref": "#/components/schemas/CfgCfgExpr"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CfgCfgExpr": {
        "properties": {
          "all": {
            "$ref": "#/components/schemas/CfgAll"
          },
          "any": {
            "$ref": "#/components/schemas/CargoDependencySpecCfgAny"
          },
          "not": {
            "$ref": "#/components/schemas/CfgNot"
          },
          "value": {
            "$ref": "#/components/schemas/CargoDependencySpecCfgValue"
          }
        },
        "type": "object"
      },
      "CfgKeyPair": {
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "value"
        ],
        "type": "object"
      },
      "CfgNot": {
        "properties": {
          "expr": {
            "$ref": "#/components/schemas/CfgCfgExpr"
          }
        },
        "required": [
          "expr"
        ],
        "type": "object"
      },
      "ChecksumHashAlgorithm": {
        "default": "HASH_ALGORITHM_UNSPECIFIED",
        "description": "An enum with the possible hash functions used to create checksum value.\n\n - HASH_ALGORITHM_MD5: HASH_ALGORITHM_MD5 for MD5 hash function.\n - HASH_ALGORITHM_SHA1: HASH_ALGORITHM_SHA1 for SHA1 hash function.\n - HASH_ALGORITHM_SHA224: HASH_ALGORITHM_SHA224 for SHA224 hash function.\n - HASH_ALGORITHM_SHA256: HASH_ALGORITHM_SHA256 for SHA256 hash function.\n - HASH_ALGORITHM_SHA384: HASH_ALGORITHM_SHA384 for SHA384 hash function.\n - HASH_ALGORITHM_SHA512: HASH_ALGORITHM_SHA512 for SHA512 hash function.",
        "enum": [
          "HASH_ALGORITHM_UNSPECIFIED",
          "HASH_ALGORITHM_MD5",
          "HASH_ALGORITHM_SHA1",
          "HASH_ALGORITHM_SHA224",
          "HASH_ALGORITHM_SHA256",
          "HASH_ALGORITHM_SHA384",
          "HASH_ALGORITHM_SHA512"
        ],
        "type": "string"
      },
      "ConfigCVSSNode": {
        "properties": {
          "cpe_match": {
            "items": {
              "$ref": "#/components/schemas/CVSSNodeCpeMatch"
            },
            "type": "array"
          },
          "negate": {
            "type": "boolean"
          },
          "operator": {
            "$ref": "#/components/schemas/ConfigOperator"
          }
        },
        "required": [
          "operator",
          "cpe_match"
        ],
        "type": "object"
      },
      "ConfigOperator": {
        "default": "OPERATOR_UNSPECIFIED",
        "enum": [
          "OPERATOR_UNSPECIFIED",
          "OPERATOR_AND",
          "OPERATOR_OR"
        ],
        "type": "string"
      },
      "ContainerContextDiffRecordScope": {
        "default": "RECORD_SCOPE_UNSPECIFIED",
        "description": "Which finding types a stored suppression covers. Members mirror\nFindingRecordScope by number.\n\n - RECORD_SCOPE_UNSPECIFIED: Unset; treated as RECORD_SCOPE_ALL.\n - RECORD_SCOPE_ALL: Every finding common with the baseline.\n - RECORD_SCOPE_VULNERABILITY: Vulnerability findings only.",
        "enum": [
          "RECORD_SCOPE_UNSPECIFIED",
          "RECORD_SCOPE_ALL",
          "RECORD_SCOPE_VULNERABILITY"
        ],
        "type": "string"
      },
      "ContainerProfileDetailsApplicationType": {
        "default": "APPLICATION_TYPE_UNSPECIFIED",
        "description": "ApplicationType represents the type of the application.\n\n - APPLICATION_TYPE_UNSPECIFIED: Unspecified application type.\n - APPLICATION_TYPE_CLI: CLI application type.\nIt is typically set when container image does not have any exposed ports.\n - APPLICATION_TYPE_SERVER: Server application type.\nIt is typically set when container image has exposed ports.",
        "enum": [
          "APPLICATION_TYPE_UNSPECIFIED",
          "APPLICATION_TYPE_CLI",
          "APPLICATION_TYPE_SERVER"
        ],
        "type": "string"
      },
      "ContainerProfileDetailsProfileType": {
        "default": "PROFILE_TYPE_UNSPECIFIED",
        "description": "ProfileType represents the type of the profile.\n\n - PROFILE_TYPE_UNSPECIFIED: Unspecified profile type.\n - PROFILE_TYPE_BASIC: Basic profile type.\nIt Indicates that a container image was profiled using a built in profiling mechanism.\n - PROFILE_TYPE_INSTRUMENTED: Instrumented profile type.\nIt Indicates that a container image was profiled using an instrumented profiling mechanism.",
        "enum": [
          "PROFILE_TYPE_UNSPECIFIED",
          "PROFILE_TYPE_BASIC",
          "PROFILE_TYPE_INSTRUMENTED"
        ],
        "type": "string"
      },
      "ContainerProfileErrorContainerProfileStatus": {
        "default": "CONTAINER_PROFILE_STATUS_UNSPECIFIED",
        "description": "ContainerProfileStatus indicates the result of profiling a container image.\n\n - CONTAINER_PROFILE_STATUS_UNSPECIFIED: CONTAINER_PROFILE_STATUS_UNSPECIFIED indicates that the container profile\nstatus has not been set or is unknown.\n - CONTAINER_PROFILE_STATUS_PLUGIN_NOT_FOUND: CONTAINER_PROFILE_STATUS_PLUGIN_NOT_FOUND indicates that the Mint toolkit\nplugin required for profiling the container image was not found.\nThis typically occurs when the profiling environment is misconfigured\nor the required Mint toolkit plugin is not installed.\n - CONTAINER_PROFILE_STATUS_TIMEOUT: CONTAINER_PROFILE_STATUS_TIMEOUT indicates that the profiling operation\nexceeded the allowed time limit.\nThis typically occurs for complex container images that require\nextensive processing time or when system resources are constrained.\n - CONTAINER_PROFILE_STATUS_IMAGE_TOO_LARGE: CONTAINER_PROFILE_STATUS_IMAGE_TOO_LARGE indicates that the container\nimage exceeds the maximum allowed size for profiling.\nThis typically occurs when the uncompressed container image size\nexceeds the system's configured size limit for profiling operations.\n - CONTAINER_PROFILE_STATUS_IMAGE_NOT_RUNNABLE: CONTAINER_PROFILE_STATUS_IMAGE_NOT_RUNNABLE indicates that the container\nimage cannot be executed without additional configuration.\nThis typically occurs when the container image requires specific\nenvironment variables, volumes, network configuration, or entrypoint\narguments that were not provided during the profiling attempt.\n - CONTAINER_PROFILE_STATUS_MINT_PLUGIN_ERROR: CONTAINER_PROFILE_STATUS_MINT_PLUGIN_ERROR indicates that the Mint plugin\nencountered an error while profiling the container image.\nThis typically occurs when the Mint plugin encounters an unexpected\ncondition, such as incompatible image format, corrupted layers, or\ninternal plugin failures during the profiling process.\n - CONTAINER_PROFILE_STATUS_ARTIFACTS_NOT_FOUND: CONTAINER_PROFILE_STATUS_ARTIFACTS_NOT_FOUND indicates that the expected\nprofiling artifacts were not found after the profiling operation completed.\nThis typically occurs when the profiling process runs successfully but\nfails to produce or persist the expected output artifacts, possibly due\nto storage issues or unexpected container behavior during profiling.\n - CONTAINER_PROFILE_STATUS_INTERNAL_ERROR: CONTAINER_PROFILE_STATUS_INTERNAL_ERROR indicates that an internal error occurred while profiling the container image.\nThis typically occurs when an unexpected error occurs during the profiling process,\nsuch as a programming error or an unexpected system failure.\n - CONTAINER_PROFILE_STATUS_PLUGIN_SETUP: CONTAINER_PROFILE_STATUS_PLUGIN_SETUP indicates that an error occurred while setting up the Mint toolkit plugin.\nThis typically occurs when there is an error in setting up the Mint toolkit plugin.\n - CONTAINER_PROFILE_STATUS_PROFILE_LOAD: CONTAINER_PROFILE_STATUS_PROFILE_LOAD indicates that the profiling data was not found or corrupted.\nIndicates that the profiling is successfully completed but the profiling data was not found or corrupted.\nIt can happen if the creport.json file is not found or corrupted.\n - CONTAINER_PROFILE_STATUS_MINT_VERSION_INCOMPATIBLE: CONTAINER_PROFILE_STATUS_MINT_VERSION_INCOMPATIBLE indicates that the Mint version is incompatible with the profiling requirements.\nThis typically occurs when the Mint version is not compatible with the profiling requirements.\n - CONTAINER_PROFILE_STATUS_IMAGE_TYPE_BASE: CONTAINER_PROFILE_STATUS_IMAGE_TYPE_BASE indicates that the container\nimage was identified as a base image (OS distribution or language runtime)\nand dynamic profiling was skipped because base images contain no\napplication code to profile.",
        "enum": [
          "CONTAINER_PROFILE_STATUS_UNSPECIFIED",
          "CONTAINER_PROFILE_STATUS_PLUGIN_NOT_FOUND",
          "CONTAINER_PROFILE_STATUS_TIMEOUT",
          "CONTAINER_PROFILE_STATUS_IMAGE_TOO_LARGE",
          "CONTAINER_PROFILE_STATUS_IMAGE_NOT_RUNNABLE",
          "CONTAINER_PROFILE_STATUS_MINT_PLUGIN_ERROR",
          "CONTAINER_PROFILE_STATUS_ARTIFACTS_NOT_FOUND",
          "CONTAINER_PROFILE_STATUS_INTERNAL_ERROR",
          "CONTAINER_PROFILE_STATUS_PLUGIN_SETUP",
          "CONTAINER_PROFILE_STATUS_PROFILE_LOAD",
          "CONTAINER_PROFILE_STATUS_MINT_VERSION_INCOMPATIBLE",
          "CONTAINER_PROFILE_STATUS_IMAGE_TYPE_BASE"
        ],
        "type": "string"
      },
      "ContextContextType": {
        "default": "CONTEXT_TYPE_UNSPECIFIED",
        "description": " - CONTEXT_TYPE_MAIN: Objects from a scan of the default branch.\nAll objects in the oss namespace are in the main context.\nThe context id is always \"default\".\n - CONTEXT_TYPE_EXTERNAL: Indicates that this object is a copy/temporary value of an object in\nanother project. Used for same-tenant dependencies. In source code\nreference this is equivalent to \"vendor\" folders. Package versions in\nthe external context are only scanned for call graphs. No other\noperations are performed on them.\n - CONTEXT_TYPE_CI_RUN: Objects from a PR scan. The context id is the PR UUID.\nObjects in this context are deleted after 30 days.\n - CONTEXT_TYPE_SBOM: Objects from an SBOM scan. The context id is the SBOM serial number or\nsome other unique identifier.\n - CONTEXT_TYPE_REF: Objects from a scan of a specific branch. The context id is the branch\nreference name.",
        "enum": [
          "CONTEXT_TYPE_UNSPECIFIED",
          "CONTEXT_TYPE_MAIN",
          "CONTEXT_TYPE_EXTERNAL",
          "CONTEXT_TYPE_CI_RUN",
          "CONTEXT_TYPE_SBOM",
          "CONTEXT_TYPE_REF"
        ],
        "type": "string"
      },
      "CvssDataV2AccessComplexity": {
        "default": "ACCESS_COMPLEXITY_UNSPECIFIED",
        "enum": [
          "ACCESS_COMPLEXITY_UNSPECIFIED",
          "ACCESS_COMPLEXITY_HIGH",
          "ACCESS_COMPLEXITY_MEDIUM",
          "ACCESS_COMPLEXITY_LOW"
        ],
        "type": "string"
      },
      "CvssDataV2Auth": {
        "default": "AUTH_UNSPECIFIED",
        "enum": [
          "AUTH_UNSPECIFIED",
          "AUTH_MULTIPLE",
          "AUTH_SINGLE",
          "AUTH_NONE"
        ],
        "type": "string"
      },
      "CvssDataV2CollateralDamagePotential": {
        "default": "COLLATERAL_DAMAGE_POTENTIAL_UNSPECIFIED",
        "enum": [
          "COLLATERAL_DAMAGE_POTENTIAL_UNSPECIFIED",
          "COLLATERAL_DAMAGE_POTENTIAL_NONE",
          "COLLATERAL_DAMAGE_POTENTIAL_LOW",
          "COLLATERAL_DAMAGE_POTENTIAL_LOW_MEDIUM",
          "COLLATERAL_DAMAGE_POTENTIAL_MEDIUM_HIGH",
          "COLLATERAL_DAMAGE_POTENTIAL_HIGH",
          "COLLATERAL_DAMAGE_POTENTIAL_NOT_DEFINED"
        ],
        "type": "string"
      },
      "CvssDataV2Exploitability": {
        "default": "EXPLOITABILITY_UNSPECIFIED",
        "enum": [
          "EXPLOITABILITY_UNSPECIFIED",
          "EXPLOITABILITY_UNPROVEN",
          "EXPLOITABILITY_PROOF_OF_CONCEPT",
          "EXPLOITABILITY_FUNCTIONAL",
          "EXPLOITABILITY_HIGH",
          "EXPLOITABILITY_NOT_DEFINED"
        ],
        "type": "string"
      },
      "CvssDataV2ReportConfidence": {
        "default": "REPORT_CONFIDENCE_UNSPECIFIED",
        "enum": [
          "REPORT_CONFIDENCE_UNSPECIFIED",
          "REPORT_CONFIDENCE_UNCONFIRMED",
          "REPORT_CONFIDENCE_UNCORROBORATED",
          "REPORT_CONFIDENCE_CONFIRMED",
          "REPORT_CONFIDENCE_NOT_DEFINED"
        ],
        "type": "string"
      },
      "CvssDataV2TargetDistribution": {
        "default": "TARGET_DISTRIBUTION_UNSPECIFIED",
        "enum": [
          "TARGET_DISTRIBUTION_UNSPECIFIED",
          "TARGET_DISTRIBUTION_NONE",
          "TARGET_DISTRIBUTION_LOW",
          "TARGET_DISTRIBUTION_MEDIUM",
          "TARGET_DISTRIBUTION_HIGH",
          "TARGET_DISTRIBUTION_NOT_DEFINED"
        ],
        "type": "string"
      },
      "CvssDataV2V2Impact": {
        "default": "V2_IMPACT_IMPACT_UNSPECIFIED",
        "enum": [
          "V2_IMPACT_IMPACT_UNSPECIFIED",
          "V2_IMPACT_IMPACT_NONE",
          "V2_IMPACT_IMPACT_PARTIAL",
          "V2_IMPACT_IMPACT_COMPLETE"
        ],
        "type": "string"
      },
      "DependencyImportedType": {
        "default": "IMPORTED_TYPE_UNSPECIFIED",
        "description": "ImportedType is the state of import.\n\n - IMPORTED_TYPE_UNSPECIFIED: UNSPECIFIED is the default state. This state denotes that imported\ndependency analysis has not been run yet for this dependency.\n - IMPORTED_TYPE_IN_SOURCE: IN_SOURCE means the imported dependency analysis succeeded and found\nthat the dependency is imported in source.\n - IMPORTED_TYPE_NOT_IN_SOURCE: NOT_IN_SOURCE means the imported dependency analysis succeeded and\nfound that the dependency is not imported in source.\n - IMPORTED_TYPE_PHANTOM: PHANTOM means the imported dependency analysis succeeded and found that\nthe dependency is imported only in the source (a phantom dependency).\n - IMPORTED_TYPE_SEGMENT_MATCH: Dependency was discovered through code segment match.\n - IMPORTED_TYPE_INSTALLED_IN_USE: Dependency was discovered through installed dependencies and it is in use.",
        "enum": [
          "IMPORTED_TYPE_UNSPECIFIED",
          "IMPORTED_TYPE_IN_SOURCE",
          "IMPORTED_TYPE_NOT_IN_SOURCE",
          "IMPORTED_TYPE_PHANTOM",
          "IMPORTED_TYPE_SEGMENT_MATCH",
          "IMPORTED_TYPE_INSTALLED_IN_USE"
        ],
        "type": "string"
      },
      "DependencyMetadataDependencyData": {
        "description": "Information about the dependency.",
        "properties": {
          "abstract": {
            "description": "True if the dependency is an abstract dependency, such as a secondary Pom\nfile.",
            "type": "boolean"
          },
          "approximation": {
            "description": "True if this is an approximate dependency based on unresolved package\ndependencies.",
            "type": "boolean"
          },
          "callgraph_available": {
            "description": "True if the call graph is available.",
            "type": "boolean"
          },
          "container_data": {
            "$ref": "#/components/schemas/v1ContainerDependencyMetadata"
          },
          "declared_licenses": {
            "description": "Declared license information for the dependency.",
            "items": {
              "$ref": "#/components/schemas/v1LicenseDependencyMetadata"
            },
            "type": "array"
          },
          "direct": {
            "description": "True if this is a direct dependency.",
            "type": "boolean"
          },
          "discovered_licenses": {
            "description": "Discovered license information for the dependency.",
            "items": {
              "$ref": "#/components/schemas/v1LicenseDependencyMetadata"
            },
            "type": "array"
          },
          "discovery_type": {
            "$ref": "#/components/schemas/DependencyMetadataDiscoveryType"
          },
          "ecosystem": {
            "$ref": "#/components/schemas/v1Ecosystem"
          },
          "eol": {
            "description": "Indicates whether the dependency is end of life.",
            "type": "boolean"
          },
          "eol_timestamp": {
            "description": "End of life timestamp for the dependency package version.",
            "format": "date-time",
            "type": "string"
          },
          "forked": {
            "description": "Set to true if the dependency is a downstream fork of a public dependency.\nTrue exactly when upstream_reference names a package, so both fields are\nwritten together.",
            "type": "boolean"
          },
          "internal": {
            "description": "True if the dependency is in the same namespace or, if the\nnamespace is oss, in the same project as the importer.",
            "type": "boolean"
          },
          "last_commit": {
            "description": "Date that the dependency was last modified.",
            "format": "date-time",
            "type": "string"
          },
          "locked": {
            "description": "Set to true if the dependency is fixed to a specific version by a\nlock file at install time (outcome).\n\nIf a dependency is locked, but not pinned, it could drift if the\nlock file is regenerated (for example, by 'npm update').",
            "type": "boolean"
          },
          "missing": {
            "description": "True if the package version is missing for this dependency.",
            "type": "boolean"
          },
          "namespace": {
            "description": "Namespace to which the dependency package version object belongs.",
            "type": "string"
          },
          "native_scope": {
            "description": "Un-normalized native dependency scope from the package manager (e.g.\nMaven \"provided\"), before it is collapsed into scope. Empty if none.",
            "type": "string"
          },
          "orphan": {
            "description": "Deprecated.",
            "type": "boolean"
          },
          "package_name": {
            "description": "Qualified dependency package name. Does not include the version.\nFor example, for go://package@v1.2.3 this is set to \"go://package\".",
            "type": "string"
          },
          "package_version_uuid": {
            "description": "the UUID of the dependency package version object.",
            "type": "string"
          },
          "parent_count": {
            "description": "Total number of direct parents in dependency graph.",
            "format": "int64",
            "type": "integer"
          },
          "parent_version_name": {
            "description": "Fully qualified name of the direct parent of the dependency. For example,\ngo://package@v1.2.3.",
            "type": "string"
          },
          "patched": {
            "description": "Indicates whether the dependency version was patched or not.",
            "type": "boolean"
          },
          "pinned": {
            "description": "Set to true of the dependency is fixed to a specific version by a\nmanifest file (intent).\n\nFor example, in package.json, \"lodash\": \"4.17.21\" is pinned while\n\"lodash\": \"^4.0.0\" is not (it's a range, \"any 4.x\").",
            "type": "boolean"
          },
          "project_paths": {
            "description": "List of all project paths to this dependency from the root package\nversion (importer).",
            "items": {
              "$ref": "#/components/schemas/v1DependencyMetadataPath"
            },
            "type": "array"
          },
          "project_uuid": {
            "description": "The UUID of the project to which the dependency belongs.",
            "type": "string"
          },
          "public": {
            "description": "True if the dependency is public.",
            "type": "boolean"
          },
          "purl": {
            "description": "The purl for the dependency package version.",
            "type": "string"
          },
          "reachable": {
            "$ref": "#/components/schemas/DependencyMetadataReachabilityType"
          },
          "repo_name": {
            "description": "Name of the repository to which the dependency belongs.",
            "type": "string"
          },
          "resolved_version": {
            "description": "Resolved dependency package version. For example, \"v2.0.0\".",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "unresolved_version": {
            "description": "Unresolved dependency package version string. For example, \"v2.0.0\".",
            "type": "string"
          },
          "upstream_reference": {
            "description": "The public package this private dependency was forked from, so its\nvulnerabilities can be attributed to the fork. Empty means the resolver\nhas not run yet; \"N/A\" means it ran and found no upstream.",
            "type": "string"
          },
          "utilization": {
            "description": "Percent of the dependency used based on the call graph. Implementation\npending.",
            "format": "float",
            "type": "number"
          },
          "vendored": {
            "description": "True if the dependency is a vendored dependency.",
            "type": "boolean"
          }
        },
        "required": [
          "direct"
        ],
        "type": "object"
      },
      "DependencyMetadataDiscoveryType": {
        "default": "DISCOVERY_TYPE_UNSPECIFIED",
        "description": " - DISCOVERY_TYPE_MANIFEST: Dependency was discovered through a manifest file.\n - DISCOVERY_TYPE_PHANTOM: Dependency was discovered through phantom dependency / imported\ndependency analysis.\n - DISCOVERY_TYPE_SEGMENT_MATCH: Dependency was discovered via code segment match.",
        "enum": [
          "DISCOVERY_TYPE_UNSPECIFIED",
          "DISCOVERY_TYPE_MANIFEST",
          "DISCOVERY_TYPE_PHANTOM",
          "DISCOVERY_TYPE_SEGMENT_MATCH"
        ],
        "type": "string"
      },
      "DependencyMetadataImporterData": {
        "description": "Information about the root package version (importer),\nthat imports the dependency in one or more versions,\neither directly or indirectly.",
        "properties": {
          "callgraph_available": {
            "description": "True if the call graph is available for the root package version.",
            "type": "boolean"
          },
          "container_base_image": {
            "$ref": "#/components/schemas/v1ContainerBaseImage"
          },
          "package_name": {
            "description": "Qualified package name of the root package version.\nFor example, for go://package@v1.2.3 this is set to \"go://package\".",
            "type": "string"
          },
          "package_version_name": {
            "description": "Fully qualified name of the root package version. For example,\ngo://package@v1.2.3.",
            "type": "string"
          },
          "package_version_ref": {
            "description": "Resolved ref of the source control version for the root package version.\nCan be a tag, a branch or a SHA.",
            "type": "string"
          },
          "package_version_sha": {
            "description": "SHA of the source control version for the root package version.\nBecause the SHA might not be possible to resolved, this field is\noptional.",
            "type": "string"
          },
          "package_version_uuid": {
            "description": "The UUID of the importer package version object.\nThis is the same as the parent UUID of this object (meta.parent_uuid).",
            "type": "string"
          },
          "project_uuid": {
            "description": "The UUID of the project to which the root package belongs.",
            "type": "string"
          },
          "version_name": {
            "description": "Version number of the root package version.\n\nFor example, for go://package@v1.2.3 this is set to \"v1.2.3\".",
            "type": "string"
          }
        },
        "required": [
          "project_uuid",
          "package_name",
          "package_version_uuid",
          "package_version_name",
          "package_version_ref",
          "callgraph_available"
        ],
        "type": "object"
      },
      "DependencyMetadataReachabilityType": {
        "default": "REACHABILITY_TYPE_UNSPECIFIED",
        "description": " - REACHABILITY_TYPE_REACHABLE: Call graph analysis determined that the dependency is likely reachable.\n - REACHABILITY_TYPE_UNREACHABLE: Call graph analysis determined that the dependency is likely not\nreachable.\n - REACHABILITY_TYPE_UNKNOWN: Not enough information to perform reachability analysis.\n - REACHABILITY_TYPE_REACHABLE_BY_INCLUSION: The vulnerability is assumed reachable due to how the dependency is typically used; no call paths exist for this finding.",
        "enum": [
          "REACHABILITY_TYPE_UNSPECIFIED",
          "REACHABILITY_TYPE_REACHABLE",
          "REACHABILITY_TYPE_UNREACHABLE",
          "REACHABILITY_TYPE_UNKNOWN",
          "REACHABILITY_TYPE_REACHABLE_BY_INCLUSION"
        ],
        "type": "string"
      },
      "EnvironmentTool": {
        "properties": {
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "version"
        ],
        "type": "object"
      },
      "FindingFixingUpgradesUpgradeInfo": {
        "description": "Information about one upgrade.",
        "properties": {
          "direct_dependency_name": {
            "description": "Fully qualified name of the direct dependency to be upgraded.",
            "type": "string"
          },
          "from_version": {
            "description": "Current version of the direct dependency.",
            "type": "string"
          },
          "package_name": {
            "description": "Fully qualified name of the root package.",
            "type": "string"
          },
          "to_version": {
            "description": "Version that the direct dependency should be upgraded to.",
            "type": "string"
          },
          "upgrade_risk": {
            "description": "The risk of the upgrade.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "FindingPolicyInfoPolicyResult": {
        "description": "Policy output.",
        "properties": {
          "fields": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of all key-value fields in the result.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "FindingSpecPath": {
        "description": "Information about one path.",
        "properties": {
          "nodes": {
            "description": "List of structured, annotated function nodes.",
            "items": {
              "$ref": "#/components/schemas/PathNode"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "GitHubActionDependencySpecGHActionType": {
        "default": "GH_ACTION_TYPE_UNSPECIFIED",
        "description": "ActionType indicates what type of action is being used.\neg. JS action, Docker action, composite action etc.\n\n - GH_ACTION_TYPE_UNSPECIFIED: Unspecified when it is unlcear what typeof action it is.\n - GH_ACTION_TYPE_GITHUB_REPO: Indicates action's source code is hosted in the GitHub repository.\n - GH_ACTION_TYPE_DOCKER: Indicates action written in Docker and is hosted in the Docker\nregistry.\n - GH_ACTION_TYPE_INTERNAL: Indicates that action is using logic internal to the organization.\nit could be referring to another .yaml file or referring another\ndirectory which contains code for GitHub action.",
        "enum": [
          "GH_ACTION_TYPE_UNSPECIFIED",
          "GH_ACTION_TYPE_GITHUB_REPO",
          "GH_ACTION_TYPE_DOCKER",
          "GH_ACTION_TYPE_INTERNAL"
        ],
        "type": "string"
      },
      "GroupResponseGroupData": {
        "description": "Information about objects matching the given key.",
        "properties": {
          "aggregation_count": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "aggregation_uuids": {
            "description": "List of UUIDs of the objects in the group.\nOnly populated if show_aggregation_uuids is set.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "aggregation_value": {
            "$ref": "#/components/schemas/v1GroupAggregationValueResponse"
          },
          "unique_counts": {
            "additionalProperties": {
              "$ref": "#/components/schemas/v1CountResponse"
            },
            "description": "Map of counts for the given unique_count_paths fields.\nOnly populated if unique_count_paths is set.",
            "type": "object"
          },
          "unique_values": {
            "additionalProperties": {
              "items": {
                "type": "object"
              },
              "type": "array"
            },
            "description": "Map of values for the given unique_value_paths fields.\nOnly populated if unique_value_paths is set.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "LLMContextStructuredContent": {
        "properties": {
          "data": {
            "description": "The actual content data.",
            "type": "string"
          },
          "schema": {
            "description": "The schema defining the structure and validation rules for the content.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "LinterCorrectnessAnalysisCodeFix": {
        "description": "CodeFix represents a potential fix to a determined true positive linter result.",
        "properties": {
          "file_path": {
            "description": "The file path of the code fix.",
            "type": "string"
          },
          "line_end": {
            "description": "The end line number of the code fix.",
            "format": "int32",
            "type": "integer"
          },
          "line_start": {
            "description": "The start line number of the code fix.",
            "format": "int32",
            "type": "integer"
          },
          "patch": {
            "description": "The code fix to be applied.",
            "type": "string"
          }
        },
        "required": [
          "patch",
          "file_path",
          "line_start",
          "line_end"
        ],
        "type": "object"
      },
      "LinterCorrectnessAnalysisDataFlowNode": {
        "description": "DataFlowNode represents a node in the data flow trace from source to sink.",
        "properties": {
          "code_line_num": {
            "description": "Line number in the source file.",
            "format": "int32",
            "type": "integer"
          },
          "code_snippet": {
            "description": "Variable or expression at this point in the flow.",
            "type": "string"
          },
          "type": {
            "description": "Type of node in the data flow (source, step, or sink).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MalwareRangeMalwareRangeType": {
        "default": "MALWARE_RANGE_TYPE_UNSPECIFIED",
        "description": "Type of the version information.",
        "enum": [
          "MALWARE_RANGE_TYPE_UNSPECIFIED",
          "MALWARE_RANGE_TYPE_GIT",
          "MALWARE_RANGE_TYPE_SEMVER",
          "MALWARE_RANGE_TYPE_ECOSYSTEM"
        ],
        "type": "string"
      },
      "NVDVulnerabilityCvssMetricV2": {
        "description": "Based on schema definition provided by NVD here. https://csrc.nist.gov/schema/nvd/api/2.0/external/cvss-v2.0.json.",
        "properties": {
          "ac_insuf_info": {
            "type": "boolean"
          },
          "base_severity": {
            "type": "string"
          },
          "cvss_data": {
            "$ref": "#/components/schemas/v1CvssDataV2"
          },
          "exploitability_score": {
            "format": "float",
            "type": "number"
          },
          "impact_score": {
            "format": "float",
            "type": "number"
          },
          "obtain_all_privilege": {
            "type": "boolean"
          },
          "obtain_other_privilege": {
            "type": "boolean"
          },
          "obtain_user_privilege": {
            "type": "boolean"
          },
          "source": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/v1NVDMetricType"
          },
          "user_interaction_required": {
            "type": "boolean"
          }
        },
        "required": [
          "source",
          "type",
          "cvss_data"
        ],
        "type": "object"
      },
      "NVDVulnerabilityCvssMetricV30": {
        "description": "Based on schema definition provided by NVD here. https://csrc.nist.gov/schema/nvd/api/3.0/external/cvss-v2.0.json.",
        "properties": {
          "cvss_data": {
            "$ref": "#/components/schemas/v1CvssDataV30"
          },
          "exploitability_score": {
            "format": "float",
            "type": "number"
          },
          "impact_score": {
            "format": "float",
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/v1NVDMetricType"
          }
        },
        "required": [
          "source",
          "type",
          "cvss_data"
        ],
        "type": "object"
      },
      "NVDVulnerabilityCvssMetricV31": {
        "description": "Based on schema definition provided by NVD here. https://csrc.nist.gov/schema/nvd/api/2.0/external/cvss-v3.1.json.",
        "properties": {
          "cvss_data": {
            "$ref": "#/components/schemas/v1CvssDataV31"
          },
          "exploitability_score": {
            "format": "float",
            "type": "number"
          },
          "impact_score": {
            "format": "float",
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/v1NVDMetricType"
          }
        },
        "required": [
          "source",
          "type",
          "cvss_data"
        ],
        "type": "object"
      },
      "NVDVulnerabilityCvssMetricV40": {
        "description": "CvssMetricV40. Based on schema definition provided by FIRST.ORG for CVSS v4.0.\nschema in https://csrc.nist.gov/schema/nvd/api/2.0/external/cvss-v4.0.json.",
        "properties": {
          "cvss_data": {
            "$ref": "#/components/schemas/v1CvssDataV40"
          },
          "exploitability_score": {
            "format": "float",
            "type": "number"
          },
          "impact_score": {
            "format": "float",
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/v1NVDMetricType"
          }
        },
        "required": [
          "source",
          "type",
          "cvss_data"
        ],
        "type": "object"
      },
      "NVDVulnerabilityRootCve": {
        "properties": {
          "cisa_action_due": {
            "type": "string"
          },
          "cisa_exploit_add": {
            "type": "string"
          },
          "cisa_required_action": {
            "type": "string"
          },
          "cisa_vulnerability_name": {
            "type": "string"
          },
          "configurations": {
            "items": {
              "$ref": "#/components/schemas/RootCveConfig"
            },
            "type": "array"
          },
          "descriptions": {
            "items": {
              "$ref": "#/components/schemas/RootCveLangString"
            },
            "type": "array"
          },
          "evaluator_comment": {
            "type": "string"
          },
          "evaluator_impact": {
            "type": "string"
          },
          "evaluator_solution": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "last_modified": {
            "format": "date-time",
            "type": "string"
          },
          "metrics": {
            "$ref": "#/components/schemas/RootCveCVSSMetric"
          },
          "published": {
            "format": "date-time",
            "type": "string"
          },
          "references": {
            "items": {
              "$ref": "#/components/schemas/NVDVulnerabilityRootCveReference"
            },
            "type": "array"
          },
          "source_identifier": {
            "type": "string"
          },
          "vendor_comments": {
            "items": {
              "$ref": "#/components/schemas/RootCveVendorComment"
            },
            "type": "array"
          },
          "vuln_status": {
            "type": "string"
          },
          "vuln_typed_status": {
            "$ref": "#/components/schemas/v1NVDStatus"
          },
          "weaknesses": {
            "items": {
              "$ref": "#/components/schemas/RootCveWeakness"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "published",
          "last_modified",
          "descriptions",
          "references"
        ],
        "type": "object"
      },
      "NVDVulnerabilityRootCveReference": {
        "properties": {
          "source": {
            "type": "string"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "NamespaceServiceCreateNamespaceBody": {
        "description": "Namespace provides a mechanism for isolating groups of resources.\nNamespaces may be defined in a parent child hierarchy.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1NamespaceSpec"
          },
          "tenant_meta": {
            "description": "Namespaces are associated with a tenant.",
            "title": "Namespaces are associated with a tenant.",
            "type": "object"
          },
          "uuid": {
            "description": "The UUID of a namespace.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta"
        ],
        "type": "object"
      },
      "NamespaceServiceUpdateNamespaceBody": {
        "description": "Request to update a namespace.",
        "properties": {
          "object": {
            "description": "Namespace provides a mechanism for isolating groups of resources.\nNamespaces may be defined in a parent child hierarchy.",
            "properties": {
              "meta": {
                "$ref": "#/components/schemas/v1Meta"
              },
              "spec": {
                "$ref": "#/components/schemas/v1NamespaceSpec"
              },
              "tenant_meta": {
                "description": "Namespaces are associated with a tenant.",
                "title": "Namespaces are associated with a tenant.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "request": {
            "$ref": "#/components/schemas/v1UpdateRequest"
          }
        },
        "required": [
          "meta"
        ],
        "type": "object"
      },
      "NodeFunctionRef": {
        "properties": {
          "args": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "classname": {
            "type": "string"
          },
          "declared_type": {
            "type": "string"
          },
          "function_or_attribute_name": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "language_specific": {
            "type": "string"
          },
          "namespace": {
            "type": "string"
          },
          "product": {
            "type": "string"
          },
          "registry": {
            "type": "string"
          },
          "return_type": {
            "type": "string"
          },
          "signature": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "NotificationActionAggregationType": {
        "default": "AGGREGATION_TYPE_UNSPECIFIED",
        "description": " - AGGREGATION_TYPE_PROJECT: AGGREGATION_TYPE_PROJECT aggregates notifications by project.\n - AGGREGATION_TYPE_DEPENDENCY: AGGREGATION_TYPE_DEPENDENCY aggregates notifications by dependency,\nroot package version, and project.\n - AGGREGATION_TYPE_DEPENDENCY_ACROSS_PKG_VERSIONS: AGGREGATION_TYPE_DEPENDENCY_ACROSS_PKG_VERSIONS aggregates\nnotifications by dependency and project, regardless of the package\nversion.\n - AGGREGATION_TYPE_NONE: AGGREGATION_TYPE_NONE does not aggregate notifications\n - AGGREGATION_TYPE_MANUAL: AGGREGATION_TYPE_MANUAL identifies notifications created directly from findings via the UI.\nEach finding results in a separate notification.",
        "enum": [
          "AGGREGATION_TYPE_UNSPECIFIED",
          "AGGREGATION_TYPE_PROJECT",
          "AGGREGATION_TYPE_DEPENDENCY",
          "AGGREGATION_TYPE_DEPENDENCY_ACROSS_PKG_VERSIONS",
          "AGGREGATION_TYPE_NONE",
          "AGGREGATION_TYPE_MANUAL"
        ],
        "type": "string"
      },
      "PackageManagerAWSAuthProvider": {
        "description": "AWSAuthProvider represents a configuration for the authentication with the\nAWS Code Artifact repository.",
        "properties": {
          "allowed_audience": {
            "description": "allowed_audience is the allowed audience value to retrieve the role.",
            "type": "string"
          },
          "domain": {
            "description": "domain name of the AWS Code Artifact repository.",
            "type": "string"
          },
          "domain_owner": {
            "description": "domain_owner of the AWS Code Artifact repository.",
            "type": "string"
          },
          "region": {
            "description": "region is the region of the AWS Code Artifact repository.",
            "type": "string"
          },
          "repository": {
            "description": "repositiry of the AWS Code Artifact repository.",
            "type": "string"
          },
          "target_role_arn": {
            "description": "target_role_arn is the role that we need to assume in AWS.",
            "type": "string"
          }
        },
        "required": [
          "domain",
          "domain_owner",
          "repository",
          "target_role_arn",
          "allowed_audience",
          "region"
        ],
        "type": "object"
      },
      "PackageManagerAuthProvider": {
        "properties": {
          "aws": {
            "$ref": "#/components/schemas/PackageManagerAWSAuthProvider"
          },
          "gar": {
            "$ref": "#/components/schemas/PackageManagerGARAuthProvider"
          },
          "package_manager_type": {
            "$ref": "#/components/schemas/PackageManagerAuthProviderPackageManagerType"
          }
        },
        "required": [
          "package_manager_type"
        ],
        "type": "object"
      },
      "PackageManagerAuthProviderPackageManagerType": {
        "default": "PACKAGE_MANAGER_TYPE_UNSPECIFIED",
        "enum": [
          "PACKAGE_MANAGER_TYPE_UNSPECIFIED",
          "PACKAGE_MANAGER_TYPE_NPM",
          "PACKAGE_MANAGER_TYPE_MVN",
          "PACKAGE_MANAGER_TYPE_CARGO",
          "PACKAGE_MANAGER_TYPE_PYPI",
          "PACKAGE_MANAGER_TYPE_GEM",
          "PACKAGE_MANAGER_TYPE_NUGET",
          "PACKAGE_MANAGER_TYPE_PACKAGIST",
          "PACKAGE_MANAGER_TYPE_GRADLE",
          "PACKAGE_MANAGER_TYPE_COCOAPOD",
          "PACKAGE_MANAGER_TYPE_SWIFT",
          "PACKAGE_MANAGER_TYPE_CONAN"
        ],
        "type": "string"
      },
      "PackageManagerGARAuthProvider": {
        "description": "GARAuthProvider represents a configuration for authentication with\nGoogle Artifact Registry.\nSupported package manager types: NPM, MVN, GRADLE, PYPI.\nUnsupported types (CARGO, GEM, NUGET, PACKAGIST, COCOAPOD, SWIFT)\nare rejected at runtime.",
        "properties": {
          "location": {
            "description": "location is the GCP region or multi-region where the repository is hosted\n(e.g., \"us-central1\", \"europe-west1\", \"us\").",
            "type": "string"
          },
          "project_id": {
            "description": "project_id is the GCP project ID that hosts the Artifact Registry repository.",
            "type": "string"
          },
          "repository": {
            "description": "repository is the name of the Artifact Registry repository.",
            "type": "string"
          },
          "service_account_key": {
            "description": "service_account_key is the JSON key for a GCP service account with\nartifactregistry.reader permissions. Encrypted at rest.",
            "type": "string"
          }
        },
        "required": [
          "project_id",
          "location",
          "repository",
          "service_account_key"
        ],
        "type": "object"
      },
      "PackageVersionDependencyCargoDependencySpec": {
        "description": "CargoDependencySpec specifies a dependency for\ntype defined in the Rust cargo_metadata crate.",
        "properties": {
          "cfg": {
            "$ref": "#/components/schemas/CargoDependencySpecCfg"
          },
          "features": {
            "description": "The list of features enabled for this dependency.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "kind": {
            "$ref": "#/components/schemas/CargoDependencySpecDependencyKind"
          },
          "name": {
            "description": "The name of dependency.",
            "type": "string"
          },
          "named": {
            "$ref": "#/components/schemas/CargoDependencySpecNamedPlatform"
          },
          "optional": {
            "description": "Whether this dependency is required or optional.",
            "type": "boolean"
          },
          "path": {
            "description": "/ The file system path for a local path dependency.",
            "type": "string"
          },
          "registry": {
            "description": "/ The URL of the index of the registry where this dependency is from.\n/ If not specified, the dependency is from crates.io.",
            "type": "string"
          },
          "rename": {
            "description": "If the dependency is renamed, this is the new name for the dependency.",
            "type": "string"
          },
          "req": {
            "description": "The required version, specified as a list of version requirements.\nthat all have to be satisfied.",
            "items": {
              "$ref": "#/components/schemas/CargoDependencySpecCargoVersionReq"
            },
            "type": "array"
          },
          "source": {
            "description": "The source repository query string to use, if any.",
            "type": "string"
          },
          "targets": {
            "description": "The targets to which this dependency applies.\nIf there is no target then this dependency will be applicable for all\nthe targets. A dependency can be valid for multiple targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "uses_default_features": {
            "description": "Whether the default features in this dependency are used or not.",
            "type": "boolean"
          },
          "version_constraints": {
            "description": "Package version number rules.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "kind",
          "optional",
          "uses_default_features",
          "version_constraints"
        ],
        "type": "object"
      },
      "PackageVersionDependencyCocoapodDependencySpec": {
        "description": "CocoapodDependencySpec specifies storing a dependency for\ncocoapod packages.",
        "properties": {
          "name": {
            "title": "The name of the package.\nExample: Alamofire",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "targets": {
            "description": "The targets to which this dependency applies.\nIf there is no target then this dependency will be applicable for all the\ntargets. A dependency can be valid for multiple targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "version_constraints": {
            "title": "The Cocoapod version that is defined in the\nPodfile. Example: (~\u003e 1.2)",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PackageVersionDependencyConanDependencySpec": {
        "description": "ConanDependencySpec specifies storing an unresolved dependency for Conan packages.",
        "properties": {
          "name": {
            "description": "Package name, for example, zlib.",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "targets": {
            "description": "Targets that this dependency applies to.\nIf there is no target then this dependency applies to all targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "version_constraints": {
            "description": "Conan version constraints, for example, \u003e=1.2 \u003c2.0.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PackageVersionDependencyGemDependencySpec": {
        "description": "GemDependencySpec specifies storing a dependency for Ruby based\nrepositories or packages.",
        "properties": {
          "name": {
            "title": "The name of the Ruby dependency (name of a gem).\nExample: nokogiri",
            "type": "string"
          },
          "scope_type": {
            "$ref": "#/components/schemas/PackageVersionDependencyGemDependencySpecScope"
          },
          "targets": {
            "description": "The targets to which this dependency applies.\nIf there is no target then this dependency will be applicable for all the\ntargets. A dependency can be valid for multiple targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "version_constraints": {
            "title": "Package version number rules.\nExample-1: ~= 1.2\nExample-2: \u003e= 4.0.0, \u003c 6.0.0\nExample-3: == 5.4.7",
            "type": "string"
          }
        },
        "required": [
          "name",
          "version_constraints"
        ],
        "type": "object"
      },
      "PackageVersionDependencyGemDependencySpecScope": {
        "default": "SCOPE_UNSPECIFIED",
        "description": "Scope.\n\n - SCOPE_UNSPECIFIED: Unspecified scope when it is unclear what the scope is.\n - SCOPE_NORMAL: Default scope when no other scope is provided.\n - SCOPE_DEVELOPMENT: All development and test dependencies.",
        "enum": [
          "SCOPE_UNSPECIFIED",
          "SCOPE_NORMAL",
          "SCOPE_DEVELOPMENT"
        ],
        "type": "string"
      },
      "PackageVersionDependencyGitHubActionDependencySpec": {
        "description": "GitHubActionDependencySpec specifies storing a dependency for\nGitHub action packages.",
        "properties": {
          "action_type": {
            "$ref": "#/components/schemas/GitHubActionDependencySpecGHActionType"
          },
          "name": {
            "title": "The name of the GitHub action\nExample: actions/checkout",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/PackageVersionDependencyGitHubActionDependencySpecScope"
          },
          "version": {
            "title": "The version of the GitHub action\nExample: v1, v2, main",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PackageVersionDependencyGitHubActionDependencySpecScope": {
        "default": "SCOPE_UNSPECIFIED",
        "description": "The scope of the GitHub action dependency.\n\n - SCOPE_UNSPECIFIED: unspecified scope when it is unclear what the scope is.\n - SCOPE_NORMAL: NORMAL indicates that the GitHub action is being used in prod context.\n - SCOPE_TEST: TEST indicates that the GitHub action is being used in test context.",
        "enum": [
          "SCOPE_UNSPECIFIED",
          "SCOPE_NORMAL",
          "SCOPE_TEST"
        ],
        "type": "string"
      },
      "PackageVersionDependencyGoDependencySpec": {
        "description": "GoDependencySpec specifies a dependency for\nGo packages or repositories.",
        "properties": {
          "package": {
            "title": "The package url of the go dependency.\nExample: go://github.com/hashicorp/golang-lru/simplelru@v0.5.4",
            "type": "string"
          },
          "ref": {
            "description": "The ref of the dependency package version.",
            "type": "string"
          },
          "scope_type": {
            "$ref": "#/components/schemas/PackageVersionDependencyGoDependencySpecScope"
          },
          "targets": {
            "description": "The targets to which this dependency applies.\nIf there is no target then this dependency will be applicable for all the\ntargets. A dependency can be valid for multiple targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          }
        },
        "required": [
          "package",
          "ref"
        ],
        "type": "object"
      },
      "PackageVersionDependencyGoDependencySpecScope": {
        "default": "SCOPE_UNSPECIFIED",
        "enum": [
          "SCOPE_UNSPECIFIED",
          "SCOPE_NORMAL",
          "SCOPE_TEST"
        ],
        "type": "string"
      },
      "PackageVersionDependencyHuggingFaceDependencySpec": {
        "description": "HuggingFaceDependencySpec specifies storing a dependency\nfor hugging face models.",
        "properties": {
          "name": {
            "title": "The name of the model or package.\nExample: meta-llama/Meta-Llama-3-8B-Instruct",
            "type": "string"
          },
          "version": {
            "title": "The version of the model or package.\nExample: main",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PackageVersionDependencyMavenDependencySpec": {
        "description": "MavenDependencySpec specifies a dependency for\nMaven repositories or packages.",
        "properties": {
          "artifact_id": {
            "description": "The name of a Maven project.",
            "type": "string"
          },
          "classifier": {
            "description": "Differentiates Maven artifacts that were built from the same\nPOM for different contexts. Some examples are \"tests\", \"client\", and\n\"sources\".",
            "type": "string"
          },
          "exclusions": {
            "description": "Maven dependencies of a package version explicitly excluded.",
            "type": "string"
          },
          "group_id": {
            "description": "A unique identifier for an organization or project in Maven.",
            "type": "string"
          },
          "optional": {
            "description": "Whether a Maven dependency is needed or not for a project to work\ncorrectly.",
            "type": "boolean"
          },
          "scope": {
            "description": "Maven dependency scopes which can help to limit the\ntransitivity of the dependencies and determine build tasks and lifecycle\na dependency applies to. Deprecated. Maintained for compatibility.",
            "type": "string"
          },
          "scope_type": {
            "$ref": "#/components/schemas/PackageVersionDependencyMavenDependencySpecScope"
          },
          "targets": {
            "description": "The targets to which this dependency applies.\nIf there is no target then this dependency will be applicable for all the\ntargets. A dependency can be valid for multiple targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "type": {
            "description": "The Maven dependency type. Some examples are \"jar\", \"ear\", and\n\"test-jar\".",
            "type": "string"
          },
          "version_constraints": {
            "description": "Maven version number rules.",
            "type": "string"
          }
        },
        "required": [
          "group_id",
          "artifact_id",
          "version_constraints"
        ],
        "type": "object"
      },
      "PackageVersionDependencyMavenDependencySpecScope": {
        "default": "SCOPE_UNSPECIFIED",
        "description": " - SCOPE_UNSPECIFIED: Scope is not set.\n - SCOPE_COMPILE: Dependency is required at compile time.\n - SCOPE_PROVIDED: Dependency is provided at runtime by JDK or a container.\n - SCOPE_RUNTIME: Dependency is required at runtime but not at compile time.\n - SCOPE_TEST: Dependency is not required at runtime and is only used for test\npurposes.\n - SCOPE_SYSTEM: Dependency is provided by the host system.\n - SCOPE_CUSTOM: Scope is not predefined and is a customized value for certain\necosystems.\n - SCOPE_VENDORED_CODE: Dependency is provided by source code vendored.\n - SCOPE_IMPORT: Dependency is imported via pom/abstract dependency.",
        "enum": [
          "SCOPE_UNSPECIFIED",
          "SCOPE_COMPILE",
          "SCOPE_PROVIDED",
          "SCOPE_RUNTIME",
          "SCOPE_TEST",
          "SCOPE_SYSTEM",
          "SCOPE_CUSTOM",
          "SCOPE_VENDORED_CODE",
          "SCOPE_IMPORT"
        ],
        "type": "string"
      },
      "PackageVersionDependencyNpmDependencySpec": {
        "description": "NpmDependencySpec specifies storing a dependency for npm\nbased repositories or packages.",
        "properties": {
          "name": {
            "title": "name specifies the package name of the npm package.\nExample: react",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/PackageVersionDependencyNpmDependencySpecScope"
          },
          "targets": {
            "description": "The targets to which this dependency applies.\nIf there is no target then this dependency will be applicable for all the\ntargets. A dependency can be valid for multiple targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "version": {
            "title": "version specifies the version of the npm dependency if concrete version\nis defined in package.json. Example: 1.0.0",
            "type": "string"
          },
          "version_constraint": {
            "title": "versionConstraints are module version number rules if no concrete version\nis found. Example-1: ~= 3.2 Example-2: \u003e= 2.0.0, \u003c 3.0.0 Example-3:\n== 4.7.0",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PackageVersionDependencyNpmDependencySpecScope": {
        "default": "SCOPE_UNSPECIFIED",
        "description": "The scope of the npm dependency.\n\n - SCOPE_UNSPECIFIED: unspecified scope when it is unclear what the scope is.\n - SCOPE_DEPENDENCY: DEPENDENCY indicates that the dependency is required for the package to\nfunction.\n - SCOPE_DEV_DEPENDENCY: DEV_DEPENDENCY indicates that the dependency is required for\ndevelopment purposes.\n - SCOPE_OPTIONAL_DEPENDENCY: OPTIONAL_DEPENDENCY indicates that the dependency is optional.\n - SCOPE_PEER_DEPENDENCY: PEER_DEPENDENCY indicates that the dependency is Peer.",
        "enum": [
          "SCOPE_UNSPECIFIED",
          "SCOPE_DEPENDENCY",
          "SCOPE_DEV_DEPENDENCY",
          "SCOPE_OPTIONAL_DEPENDENCY",
          "SCOPE_PEER_DEPENDENCY"
        ],
        "type": "string"
      },
      "PackageVersionDependencyNugetDependencySpec": {
        "description": "NugetDependencySpec specifies storing a dependency for\nNuGet based repositories or packages.",
        "properties": {
          "name": {
            "title": "The package URL of the NuGet package.\nExample: nuget://System.Text.JSON@1.0.0",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "targets": {
            "description": "The targets to which this dependency applies.\nIf there is no target then this dependency will be applicable for all the\ntargets. A dependency can be valid for multiple targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "version_constraints": {
            "title": "The NuGet package version that is defined in the\ncsproj file. Example-1: [1.0.0, 2.0.0), Example-2: * Example-3:\n(1.0.0, 2.0.0]",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PackageVersionDependencyPackagistDependencySpec": {
        "description": "PackagistDependencySpec specifies storing a dependency for php\nbased repositories or packages.",
        "properties": {
          "name": {
            "title": "The name of the PHP package dependency.\nExample: monolog/monolog",
            "type": "string"
          },
          "scope_type": {
            "$ref": "#/components/schemas/PackageVersionDependencyPackagistDependencySpecScope"
          },
          "targets": {
            "description": "The targets to which this dependency applies.\nIf there is no target then this dependency will be applicable for all the\ntargets. A dependency can be valid for multiple targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "version_constraints": {
            "title": "Package version number rules.\nExample-1: ^1.5.3 || ^2.0\nExample-2: ^1.8.1\nExample-3: ^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
            "type": "string"
          }
        },
        "required": [
          "name",
          "version_constraints"
        ],
        "type": "object"
      },
      "PackageVersionDependencyPackagistDependencySpecScope": {
        "default": "SCOPE_UNSPECIFIED",
        "description": "Scope.\n\n - SCOPE_UNSPECIFIED: unspecified scope when it is unclear what the scope is.\n - SCOPE_NORMAL: default scope when no other scope is provided.\n - SCOPE_DEVELOPMENT: all development and test dependencies.",
        "enum": [
          "SCOPE_UNSPECIFIED",
          "SCOPE_NORMAL",
          "SCOPE_DEVELOPMENT"
        ],
        "type": "string"
      },
      "PackageVersionDependencyPypiDependencySpec": {
        "description": "PypiDependencySpec specifies a dependency for\nPython based repositories or packages.",
        "properties": {
          "name": {
            "title": "The package name of the python dependency.\nExample: multidict",
            "type": "string"
          },
          "package_manager_type": {
            "$ref": "#/components/schemas/PackageVersionDependencyPypiDependencySpecPackageManagerType"
          },
          "scope_type": {
            "$ref": "#/components/schemas/PackageVersionDependencyPypiDependencySpecScope"
          },
          "targets": {
            "description": "The targets to which this dependency applies.\nIf there is no target then this dependency will be applicable for all the\ntargets. A dependency can be valid for multiple targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "version_constraints": {
            "title": "Package version number rules.\nExample-1: ~= 3.2\nExample-2: \u003e= 2.0.0, \u003c 3.0.0\nExample-3: == 4.7.0",
            "type": "string"
          }
        },
        "required": [
          "name",
          "version_constraints"
        ],
        "type": "object"
      },
      "PackageVersionDependencyPypiDependencySpecPackageManagerType": {
        "default": "PACKAGE_MANAGER_TYPE_UNSPECIFIED",
        "description": "Python package manager.\n\n - PACKAGE_MANAGER_TYPE_PIP: PIP package manager\n - PACKAGE_MANAGER_TYPE_PIPENV: PIPENV package manager\n - PACKAGE_MANAGER_TYPE_POETRY: POETRY package manager\n - PACKAGE_MANAGER_TYPE_PDM: PDM package manager\n - PACKAGE_MANAGER_TYPE_UV: UV package manager",
        "enum": [
          "PACKAGE_MANAGER_TYPE_UNSPECIFIED",
          "PACKAGE_MANAGER_TYPE_PIP",
          "PACKAGE_MANAGER_TYPE_PIPENV",
          "PACKAGE_MANAGER_TYPE_POETRY",
          "PACKAGE_MANAGER_TYPE_PDM",
          "PACKAGE_MANAGER_TYPE_UV"
        ],
        "type": "string"
      },
      "PackageVersionDependencyPypiDependencySpecScope": {
        "default": "SCOPE_UNSPECIFIED",
        "description": "Scope.\n\n - SCOPE_UNSPECIFIED: Unspecified scope when it is unclear what the scope is.\n - SCOPE_NORMAL: Default scope when no other scope is provided.\n - SCOPE_OPTIONAL: All optional dependencies and extras related to features, dev, test or\nany other.",
        "enum": [
          "SCOPE_UNSPECIFIED",
          "SCOPE_NORMAL",
          "SCOPE_OPTIONAL"
        ],
        "type": "string"
      },
      "PackageVersionDependencySwiftDependencySpec": {
        "description": "SwiftDependencySpec specifies storing a dependency for Swift packages.",
        "properties": {
          "branch": {
            "minLength": 1,
            "type": "string"
          },
          "exact": {
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "minLength": 1,
            "title": "The name of the Swift package.\nExample: github.com/Alamofire/Alamofire",
            "type": "string"
          },
          "range": {
            "$ref": "#/components/schemas/PackageVersionDependencySwiftDependencySpecRange"
          },
          "revision": {
            "minLength": 1,
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "targets": {
            "description": "The targets to which this dependency applies.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          }
        },
        "required": [
          "name",
          "exact",
          "revision",
          "branch",
          "range"
        ],
        "type": "object"
      },
      "PackageVersionDependencySwiftDependencySpecRange": {
        "description": "Range represents a version range.",
        "properties": {
          "lower_bound": {
            "minLength": 1,
            "type": "string"
          },
          "upper_bound": {
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "lower_bound",
          "upper_bound"
        ],
        "type": "object"
      },
      "PackageVersionDependencyUnresolvedDependencySpec": {
        "description": "Unresolved dependency data.",
        "properties": {
          "name": {
            "description": "Package name, for example, Alamofire.",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/v1DependencyScope"
          },
          "targets": {
            "description": "Targets that this dependency applies to.\nIf there is no target then this dependency applies to all targets.",
            "items": {
              "$ref": "#/components/schemas/v1Target"
            },
            "type": "array"
          },
          "version_constraints": {
            "description": "Version constraints, for example, ~\u003e 1.2.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "PackageVersionResolutionErrors": {
        "description": "ResolutionErrors captures the error results.",
        "properties": {
          "call_graph": {
            "$ref": "#/components/schemas/v1ResolutionStatus"
          },
          "resolved": {
            "$ref": "#/components/schemas/v1ResolutionStatus"
          },
          "unresolved": {
            "$ref": "#/components/schemas/v1ResolutionStatus"
          }
        },
        "type": "object"
      },
      "PackageVersionSourceCodeReference": {
        "properties": {
          "http_clone_url": {
            "description": "The URL of the source code repository.",
            "type": "string"
          },
          "platform_source": {
            "$ref": "#/components/schemas/v1PlatformSource"
          },
          "version": {
            "$ref": "#/components/schemas/v1Version"
          }
        },
        "type": "object"
      },
      "PackagistSpecAuthKind": {
        "default": "AUTH_KIND_UNSPECIFIED",
        "description": "Auth methods for Packagist - reference\nhttps://getcomposer.org/doc/articles/authentication-for-private-packages.md.",
        "enum": [
          "AUTH_KIND_UNSPECIFIED",
          "AUTH_KIND_HTTP_BASIC",
          "AUTH_KIND_HTTP_BEARER",
          "AUTH_KIND_GITHUB_OAUTH",
          "AUTH_KIND_GITLAB_OAUTH",
          "AUTH_KIND_GITLAB_TOKEN",
          "AUTH_KIND_BITBUCKET_OAUTH"
        ],
        "type": "string"
      },
      "PathNode": {
        "description": "Information about one function node.",
        "properties": {
          "function_ref": {
            "$ref": "#/components/schemas/NodeFunctionRef"
          },
          "internal": {
            "type": "boolean"
          },
          "package_version": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "PermissionsMethods": {
        "description": "An array of allowed methods.",
        "properties": {
          "methods": {
            "items": {
              "$ref": "#/components/schemas/v1Method"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "PolicyAdmissionAction": {
        "properties": {
          "bypass_exceptions": {
            "description": "Set to true if exception policies should be ignored for findings\nmatching this policy.",
            "type": "boolean"
          },
          "disable_enforcement": {
            "description": "If disable_enforcement is set the policy will just log the result\nand not enforce an action. This allows debugging and observation\nof the system.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "PolicyExceptionAction": {
        "properties": {
          "expiration_time": {
            "description": "Expiration time of the exception policy.",
            "format": "date-time",
            "type": "string"
          },
          "reason": {
            "$ref": "#/components/schemas/v1ExceptionReason"
          },
          "tags": {
            "description": "[Optional] List of tags to add to spec.exception.tags in matching\nfindings.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "reason"
        ],
        "type": "object"
      },
      "PolicyFindingAction": {
        "properties": {
          "categories": {
            "description": "List of categories that capture the use cases the finding fits in.\nFor policy templates, this is used as the default value but\nit can be changed.",
            "items": {
              "$ref": "#/components/schemas/v1FindingCategory"
            },
            "type": "array"
          },
          "explanation": {
            "description": "Explanation provides information about the reason this is considered\nnoteworthy. For policy templates this is used as the default value but\nit can be changed to any free form string.",
            "type": "string"
          },
          "external_name": {
            "description": "External finding name.\nFor policy templates this is used as the default value but\nit can be changed to any free form string.",
            "type": "string"
          },
          "level": {
            "$ref": "#/components/schemas/SpecFindingLevel"
          },
          "meta_tags": {
            "description": "Additional meta tags for the finding that is created.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "remediation": {
            "description": "Remediation instructions.\nFor policy templates this is used as the default value but\nit can be changed to any free form string.",
            "type": "string"
          },
          "summary": {
            "description": "Summary of the finding that is created.\nFor policy templates this is used as the default value but\nit can be changed to any free form string.",
            "type": "string"
          },
          "tags": {
            "description": "Additional tags for the finding that is created.\nFor policy templates, this is used as the default value but\nit can be changed.",
            "items": {
              "$ref": "#/components/schemas/v1FindingTags"
            },
            "type": "array"
          },
          "target_kind": {
            "description": "Repository, RepositoryVersion, or PackageVersion.\nThis is usually the same as the finding parent kind.",
            "type": "string"
          }
        },
        "required": [
          "level",
          "summary",
          "explanation",
          "remediation"
        ],
        "type": "object"
      },
      "PolicyPolicyType": {
        "default": "POLICY_TYPE_UNSPECIFIED",
        "description": " - POLICY_TYPE_ADMISSION: POLICY_TYPE_ADMISSION will admit/reject pipeline runs.\nAdmission policies operate on Findings and are run during\na CI/CD pipeline. They may return data such as the uuids\nof findings that violate the policy.\n - POLICY_TYPE_NOTIFICATION: POLICY_TYPE_NOTIFICATION is for policies that generate notifications.\n - POLICY_TYPE_ML_FINDING: ML finding policies enable or disable algorithmic findings.\nNote that there is no input data for these policies,\nthey always return output, and the allowed value is ignored.\n - POLICY_TYPE_SYSTEM_FINDING: A system finding policy is created from a system policy\ntemplate. It processes data and creates new findings.\nSystem finding policies are run together with user and\nML (a.k.a. algorithmic) findings.\nSystem finding policies can only be enabled, disabled, and\nedited. They cannot be created or deleted.\n - POLICY_TYPE_USER_FINDING: A user finding policy is created from scratch or from a customer\npolicy template. It processes data and creates new findings.\nUser finding policies are run together with system and\nML (a.k.a. algorithmic) findings.\nUser finding policies can be created, enabled, disabled, edited,\nand deleted.\n - POLICY_TYPE_EXCEPTION: An exception policy identifies findings which should be\nexcluded from admission and notification policies. It is\ncreated from scratch or from an exception policy template.\n - POLICY_TYPE_REMEDIATION: A remediation policy identifies findings which should be\nremediated. It is created from scratch or from a remediation\npolicy template.",
        "enum": [
          "POLICY_TYPE_UNSPECIFIED",
          "POLICY_TYPE_ADMISSION",
          "POLICY_TYPE_NOTIFICATION",
          "POLICY_TYPE_FINDING",
          "POLICY_TYPE_FINDING_CFG",
          "POLICY_TYPE_ML_FINDING",
          "POLICY_TYPE_SYSTEM_FINDING",
          "POLICY_TYPE_USER_FINDING",
          "POLICY_TYPE_EXCEPTION",
          "POLICY_TYPE_REMEDIATION"
        ],
        "type": "string"
      },
      "PolicyServiceCreatePolicyBody": {
        "description": "Policy represents a policy in the system.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "propagate": {
            "description": "Whether the object should be visible in child namespaces or not.",
            "type": "boolean"
          },
          "spec": {
            "$ref": "#/components/schemas/v1PolicySpec"
          },
          "tenant_meta": {
            "description": "Policies can be issued per namespace.",
            "title": "Policies can be issued per namespace.",
            "type": "object"
          },
          "uuid": {
            "description": "The UUID of the policy.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "PolicyServiceUpdatePolicyBody": {
        "description": "Request to update a policy.",
        "properties": {
          "object": {
            "description": "Policy represents a policy in the system.",
            "properties": {
              "meta": {
                "$ref": "#/components/schemas/v1Meta"
              },
              "propagate": {
                "description": "Whether the object should be visible in child namespaces or not.",
                "type": "boolean"
              },
              "spec": {
                "$ref": "#/components/schemas/v1PolicySpec"
              },
              "tenant_meta": {
                "description": "Policies can be issued per namespace.",
                "title": "Policies can be issued per namespace.",
                "type": "object"
              },
              "uuid": {
                "description": "The UUID of the policy.",
                "readOnly": true,
                "type": "string"
              }
            },
            "type": "object"
          },
          "request": {
            "$ref": "#/components/schemas/v1UpdateRequest"
          }
        },
        "required": [
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "PolicyTemplateParameter": {
        "properties": {
          "default_values": {
            "description": "List of default values, if applicable.\nUsed by the UI to pre-populate input values.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "description": "The description of the field.",
            "type": "string"
          },
          "multiple_ok": {
            "description": "Is true if multiple possible values are allowed to be set as a list.",
            "type": "boolean"
          },
          "name": {
            "description": "The parameter name displayed to the user.",
            "type": "string"
          },
          "possible_values": {
            "description": "A list of possible values that are accepted\nby the template. Can be used by the UI as a selector.\nIgnored by UI if possible_values_from_db is set.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "possible_values_from_db": {
            "$ref": "#/components/schemas/TemplateParameterQueryApiData"
          },
          "required": {
            "description": "Set to true if the parameter must have an input value.",
            "type": "boolean"
          },
          "value": {
            "description": "The actual template parameter name and\nthe key in the policy template_values map.",
            "type": "string"
          }
        },
        "required": [
          "value",
          "description",
          "name"
        ],
        "type": "object"
      },
      "PolicyTemplateParameterValues": {
        "properties": {
          "values": {
            "items": {
              "type": "string"
            },
            "title": "List of template parameter values",
            "type": "array"
          }
        },
        "type": "object"
      },
      "PullRequestSecurityReviewResultInfoChangeKind": {
        "default": "CHANGE_KIND_UNSPECIFIED",
        "description": "ChangeKind indicates the type of modification made to a code element (file, function, or snippet)\nwithin the pull request. This helps track whether items are newly added, modified, or removed.\n\n - CHANGE_KIND_UNSPECIFIED: Default state when the change type is unknown\n - CHANGE_KIND_NEW: Indicates a newly added element\n - CHANGE_KIND_MODIFIED: Indicates an existing element that was modified\n - CHANGE_KIND_REMOVED: Indicates an element that was removed",
        "enum": [
          "CHANGE_KIND_UNSPECIFIED",
          "CHANGE_KIND_NEW",
          "CHANGE_KIND_MODIFIED",
          "CHANGE_KIND_REMOVED"
        ],
        "type": "string"
      },
      "PullRequestSecurityReviewResultInfoCodeSnippet": {
        "description": "CodeSnippet represents a specific portion of code that has security implications.\nThis could be sensitive operations, security controls, or potential vulnerabilities.",
        "properties": {
          "change_kind": {
            "$ref": "#/components/schemas/PullRequestSecurityReviewResultInfoChangeKind"
          },
          "description": {
            "title": "Description of what the code snippet does",
            "type": "string"
          },
          "file": {
            "title": "File path where the snippet is located",
            "type": "string"
          },
          "impact": {
            "title": "Security impact or implications of this code",
            "type": "string"
          },
          "language": {
            "title": "Code language of the snippet",
            "type": "string"
          },
          "line": {
            "format": "int32",
            "title": "Starting line number of the snippet",
            "type": "integer"
          },
          "line_end": {
            "format": "int32",
            "title": "Ending line number of the snippet",
            "type": "integer"
          },
          "snippet": {
            "title": "The actual code content of the snippet",
            "type": "string"
          }
        },
        "required": [
          "file",
          "line"
        ],
        "type": "object"
      },
      "PullRequestSecurityReviewResultInfoSecurityReviewCategory": {
        "default": "SECURITY_REVIEW_CATEGORY_UNSPECIFIED",
        "description": "SecurityCategory represents the different categories of security aspects that can be evaluated.\n\n - SECURITY_REVIEW_CATEGORY_UNSPECIFIED: Default when category is unknown\n - SECURITY_REVIEW_CATEGORY_DEPENDENCY: Integration of external code, packages, and frameworks\n - SECURITY_REVIEW_CATEGORY_ACCESS_CONTROL: Authentication, authorization mechanisms and session management\n - SECURITY_REVIEW_CATEGORY_API_ENDPOINT: API and service entry points\n - SECURITY_REVIEW_CATEGORY_DATABASE: Database architecture and security\n - SECURITY_REVIEW_CATEGORY_CRYPTOGRAPHIC: Cryptographic systems and implementations\n - SECURITY_REVIEW_CATEGORY_PAYMENT_PROCESSING: Payment processing and financial systems\n - SECURITY_REVIEW_CATEGORY_MEMORY_PROTECTION: Memory management and protection\n - SECURITY_REVIEW_CATEGORY_PII_DATA_HANDLING: Processing of PII and sensitive information\n - SECURITY_REVIEW_CATEGORY_INPUT_VALIDATION: Input validation and processing security\n - SECURITY_REVIEW_CATEGORY_INFRASTRUCTURE: Infrastructure security\n - SECURITY_REVIEW_CATEGORY_CI_CD: CI/CD pipeline security\n - SECURITY_REVIEW_CATEGORY_CONFIGURATION: Application and infrastructure configuration\n - SECURITY_REVIEW_CATEGORY_NETWORK: Network security and communication protocols\n - SECURITY_REVIEW_CATEGORY_AI: AI/LLM integration security\n - SECURITY_REVIEW_CATEGORY_IMPROVEMENT: Improvement to the security posture\n - SECURITY_REVIEW_CATEGORY_VULNERABILITY: Vulnerability found in the code\n - SECURITY_REVIEW_CATEGORY_BUG: Bug found in the code",
        "enum": [
          "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"
        ],
        "type": "string"
      },
      "RangeRangeType": {
        "default": "RANGE_TYPE_UNSPECIFIED",
        "description": "Type of the version information.",
        "enum": [
          "RANGE_TYPE_UNSPECIFIED",
          "RANGE_TYPE_GIT",
          "RANGE_TYPE_SEMVER",
          "RANGE_TYPE_ECOSYSTEM"
        ],
        "type": "string"
      },
      "ReferenceReferenceType": {
        "default": "REFERENCE_TYPE_UNSPECIFIED",
        "enum": [
          "REFERENCE_TYPE_UNSPECIFIED",
          "REFERENCE_TYPE_WEB",
          "REFERENCE_TYPE_ADVISORY",
          "REFERENCE_TYPE_REPORT",
          "REFERENCE_TYPE_FIX",
          "REFERENCE_TYPE_PACKAGE",
          "REFERENCE_TYPE_ARTICLE"
        ],
        "type": "string"
      },
      "RemediationParametersAutomatedPRParameters": {
        "description": "AutomatedPRParameters holds the settings for automated PRs.",
        "properties": {
          "language_parameters": {
            "additionalProperties": {
              "$ref": "#/components/schemas/AutomatedPRParametersLanguageParameters"
            },
            "description": "Language-specific parameters for the pull request.",
            "type": "object"
          },
          "max_open_prs": {
            "description": "Maximum number of open pull requests allowed.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ResolutionStatusErrorAnalysis": {
        "description": "ErrorAnalysis is the analysis of the error based on the error parsing\nrules.",
        "properties": {
          "error_category": {
            "$ref": "#/components/schemas/SpecErrorCategory"
          },
          "explanation": {
            "description": "Explanation of the error based on the error parsing rules.",
            "type": "string"
          },
          "fixable": {
            "description": "Fixable indicates if the error is fixable through configuration.",
            "type": "boolean"
          },
          "fixable_notes": {
            "description": "notes about the fixable status.",
            "type": "string"
          },
          "matching_rule": {
            "description": "matching_rule is the rule that matched the error.",
            "type": "string"
          },
          "matching_snippet": {
            "description": "matching_snippet is the snippet of the error that matched the rule.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ResolutionStatusStatusError": {
        "default": "STATUS_ERROR_UNSPECIFIED",
        "description": "StatusError is the type of issue discovered.\n\n - STATUS_ERROR_MANIFEST_LOAD: MANIFEST_LOAD indicates that the system is unable to find the manifest of\nthe language (pom.xml, packages.json, etc). This status error is only\nused for unresolved dependencies.\n\nWhen it happens, the state of the package version will be as follows:\n- The unresolved dependencies will not be computed by the system.\n- The resolved dependencies will not be computed by the system.\n- The callgraph will not be computed by the system.\n\nFor tenant packages:\nWhen it happens, the scan of the package version is marked as failed and\nendorctl will log an error.\n\nFor OSS packages:\nWhen it happens and if the package version is in the OSS namespace, the\npackage version will not be scanned anymore. When it happens, the scan of\nthe package version is marked as failed and endorctl will log an error.\n - STATUS_ERROR_MANIFEST_PARSE: MANIFEST_PARSE indicates that the system failed to parse the manifest.\nThis status error is only used for unresolved dependencies.\n\nWhen it happens, the state of the package version will be as follows:\n- The unresolved dependencies will not be computed by the system.\n- The resolved dependencies will not be computed by the system.\n- The callgraph will be computed by the system.\n\nFor tenant packages:\nWhen it happens, the scan of the package version is marked as failed and\nendorctl will log an error.\n\nFor OSS packages:\nWhen it happens and if the package version is in the OSS namespace, the\npackage version will not be scanned anymore. When it happens, the scan of\nthe package version is marked as failed and endorctl will log an error.\n - STATUS_ERROR_MANIFEST_EMPTY: MANIFEST_EMPTY indicates that the system failed to find\nany dependencies and is returning empty results on purpose.\nDEPRECATED: use STATUS_ERROR_MANIFEST_PARSE instead.\n - STATUS_ERROR_DEPENDENCY: DEPENDENCY indicates that the system failed to resolve a dependency.\nUsually this happens when a manifest contains bad associations of\ndependencies and versions. This status error is only used for resolved\ndependencies.\n\nWhen it happens, the state of the package version will be as follows:\n- The unresolved dependencies will be computed by the system.\n- The resolved dependencies will not be computed by the system.\n- The callgraph will be computed by the system.\n\nFor tenant packages:\nWhen it happens, the scan of the package version is marked as failed and\nendorctl will log an error.\n\nFor OSS packages:\nWhen it happens and if the package version is in the OSS namespace, the\npackage version will not be scanned anymore. When it happens, the scan of\nthe package version is marked as failed and endorctl will log an error.\n - STATUS_ERROR_CALL_GRAPH: CALL_GRAPH indicates that the system failed to construct the call graph.\nThis status error is only used for callgraph computation.\n\nWhen it happens, the state of the package version will be as follows:\n- The unresolved dependencies will be computed by the system.\n- The resolved dependencies will be computed by the system.\n- The callgraph will not be computed by the system.\n\nFor tenant packages:\nWhen it happens, the scan of the package version will not be marked as\nfailed, only a warning log will be emitted by the system.\n\nFor OSS packages:\nWhen it happens, the scan of the package version will not be marked as\nfailed, only a warning log will be emitted by the system.\n - STATUS_ERROR_MISSING_ARTIFACT: MISSING_ARTIFACT indicates that the system failed to compute the\ncallgraph because the package is not built. This status error is only\nused for callgraph computation.\n\nFor OSS packages:\nWhen it happens, the system will try to build the package and the\ncomputation of the callgraph will be launched again.\n\nIt should be noted that we should never have this state set in a package\nversion. This is a transient state only used by the system. This state\ncan not happen for tenant packages, we always expect that tenant packages\nwill be built for us.\n - STATUS_ERROR_BUILD: BUILD indicates that the plugin failed to build the package version.\nThis status error is only used for unresolved dependencies.\n\nWhen it happens, the state of the package version will be as follows:\n- The unresolved dependencies will not be computed by the system.\n- The resolved dependencies will not be computed by the system.\n- The callgraph will not be computed by the system.\n\nFor OSS packages:\nWhen it happens and if the package version is in the OSS namespace, the\npackage version will not be scanned anymore. When it happens, the scan of\nthe package version is marked as failed and endorctl will log an error.\n\nIt should be noted that this state can not happen for tenant packages, we\nalways expect that tenant packages will be built for us.\n - STATUS_ERROR_PACKAGE_VERSION_UNAVAILABLE: PACKAGE_VERSION_UNAVAILABLE indicates that the package version is not\navailable from the package manager. This status error is only used for\nunresolved dependencies.\n\nWhen it happens, the state of the package version will be as follows:\n- The unresolved dependencies will not be computed by the system.\n- The resolved dependencies will not be computed by the system.\n- The callgraph will not be computed by the system.\n\nFor OSS packages::\nWhen it happens and if the package version is in the OSS namespace, the\npackage version will not be scanned anymore. When it happens, the scan of\nthe package version is marked as failed and endorctl will log an error.\n\nIt should be noted that this state can not happen for tenant packages,\nfor tenant we scan based on the source code and we never download a\npackage from a package manager.\n - STATUS_ERROR_NO_CODE_ARTIFACT: NO_CODE_ARTIFACT indicates that package version do not have any source\ncode. The status error is only used for call graphs.\n\nWhen it happens, the state of the package version will be as follows:\n- The unresolved dependencies will be computed by the system.\n- The resolved dependencies will be computed by the system.\n- The call graph will not be computed by the system.\n\nFor tenant packages:\nWhen it happens, the scan of the package version will not be marked as a\ncall graph failure, only a warning log will be emitted by the system.\n\nFor OSS packages:\nWhen it happens, the scan of the package version will not be marked as a\ncall graph failure, only a warning log will be emitted by the system.\n - STATUS_ERROR_VENV: STATUS_ERROR_VENV indicates that the system failed to create the virtual\nenvironment required to generate the call graph.\n\nWhen it happens, the state of the package version will be as follows:\n- The unresolved dependencies will be computed by the system.\n- The resolved dependencies will be computed by the system.\n- The call graph will not be computed by the system.\n\nFor tenant packages:\nWhen it happens, the scan of the package version will be not be marked as\na call graph failure. This indicates that the client code was not setup\ncorrectly.\n\nFor OSS packages:\nWhen it happens, the scan of the package version will not be marked as a\ncall graph failure, only a warning log will be emitted by the system.\n - STATUS_ERROR_INTERNAL: STATUS_ERROR_INTERNAL indicates that there was an internal system failure\nsuch as a data stream error.\n\nWhen it happens, the state of the package version will be as follows:\n- The unresolved dependencies will be computed by the system.\n- The resolved dependencies will be computed by the system.\n- The call graph will not be computed by the system.\n\nFor tenant packages:\nWhen it happens, the scan of the package version will be not be marked as\na call graph failure.\n\nFor OSS packages:\nWhen it happens, the scan of the package version will not be marked as a\ncall graph failure, only a warning log will be emitted by the system.\n - STATUS_ERROR_UNSUPPORTED: STATUS_ERROR_UNSUPPORTED indicates that we scanned a package version\nhaving an unsupported language.\n\nWhen it happens, the state of the package version will be as follows:\n- The unresolved dependencies will not be computed by the system.\n- The resolved dependencies will not be computed by the system.\n- The call graph will not not becomputed by the system.\n\nFor tenant packages:\nWhen it happens, the scan of the package version is marked as\nunsupported.\n\nFor OSS packages:\nWhen it happens, the scan of the package version is marked as\nunsupported.",
        "enum": [
          "STATUS_ERROR_UNSPECIFIED",
          "STATUS_ERROR_MANIFEST_LOAD",
          "STATUS_ERROR_MANIFEST_PARSE",
          "STATUS_ERROR_MANIFEST_EMPTY",
          "STATUS_ERROR_DEPENDENCY",
          "STATUS_ERROR_CALL_GRAPH",
          "STATUS_ERROR_MISSING_ARTIFACT",
          "STATUS_ERROR_BUILD",
          "STATUS_ERROR_PACKAGE_VERSION_UNAVAILABLE",
          "STATUS_ERROR_NO_CODE_ARTIFACT",
          "STATUS_ERROR_VENV",
          "STATUS_ERROR_INTERNAL",
          "STATUS_ERROR_UNSUPPORTED"
        ],
        "type": "string"
      },
      "RootCveCVSSMetric": {
        "properties": {
          "cvss_metric_v2": {
            "items": {
              "$ref": "#/components/schemas/NVDVulnerabilityCvssMetricV2"
            },
            "type": "array"
          },
          "cvss_metric_v30": {
            "items": {
              "$ref": "#/components/schemas/NVDVulnerabilityCvssMetricV30"
            },
            "type": "array"
          },
          "cvss_metric_v31": {
            "items": {
              "$ref": "#/components/schemas/NVDVulnerabilityCvssMetricV31"
            },
            "type": "array"
          },
          "cvss_metric_v40": {
            "items": {
              "$ref": "#/components/schemas/NVDVulnerabilityCvssMetricV40"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "RootCveConfig": {
        "properties": {
          "negate": {
            "type": "boolean"
          },
          "nodes": {
            "items": {
              "$ref": "#/components/schemas/ConfigCVSSNode"
            },
            "type": "array"
          },
          "operator": {
            "$ref": "#/components/schemas/ConfigOperator"
          }
        },
        "type": "object"
      },
      "RootCveLangString": {
        "properties": {
          "lang": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "lang",
          "value"
        ],
        "type": "object"
      },
      "RootCveVendorComment": {
        "properties": {
          "comment": {
            "type": "string"
          },
          "last_modified": {
            "format": "date-time",
            "type": "string"
          },
          "organization": {
            "type": "string"
          }
        },
        "required": [
          "organization",
          "comment",
          "last_modified"
        ],
        "type": "object"
      },
      "RootCveWeakness": {
        "properties": {
          "description": {
            "items": {
              "$ref": "#/components/schemas/RootCveLangString"
            },
            "type": "array"
          },
          "source": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "source",
          "type",
          "description"
        ],
        "type": "object"
      },
      "SBOMExportServiceCreateSBOMExportBody": {
        "description": "This is the request to the SBOM export API.\nIt consists of the request resource kind.\nThe UUID is the UUID of the resource.\nThe output is the format to export the SBOM.\nThe SBOM kind is the kind of the SBOM requested by the user. Currently we support only CycloneDx.\nThe meta parent_kind can take one of two values - PackageVersion or RepositoryVersion.\nThe Meta parent_uuid corresponds to the parent UUID of the parent kind.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1ExportedSBOMSpec"
          },
          "tenant_meta": {
            "description": "SBOM are associated with a tenant and tenant information must be provided.",
            "title": "SBOM are associated with a tenant and tenant information must be provided.",
            "type": "object"
          },
          "uuid": {
            "description": "The UUID of the SBOM.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta"
        ],
        "type": "object"
      },
      "SBOMImportServiceCreateSBOMImportBody": {
        "description": "ImportedSBOM represents an SBOM that has been imported.",
        "properties": {
          "context": {
            "$ref": "#/components/schemas/v1Context"
          },
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "processing_status": {
            "$ref": "#/components/schemas/v1ProcessingStatus"
          },
          "spec": {
            "$ref": "#/components/schemas/v1ImportedSBOMSpec"
          },
          "tenant_meta": {
            "description": "SBOM are associated with a tenant and tenant information must be provided.",
            "title": "SBOM are associated with a tenant and tenant information must be provided.",
            "type": "object"
          },
          "uuid": {
            "readOnly": true,
            "title": "The UUID of the SBOM",
            "type": "string"
          }
        },
        "required": [
          "meta",
          "context"
        ],
        "type": "object"
      },
      "SBOMImportServiceUpdateSBOMImportBody": {
        "description": "Request to update an SBOM.",
        "properties": {
          "object": {
            "description": "ImportedSBOM represents an SBOM that has been imported.",
            "properties": {
              "context": {
                "$ref": "#/components/schemas/v1Context"
              },
              "meta": {
                "$ref": "#/components/schemas/v1Meta"
              },
              "processing_status": {
                "$ref": "#/components/schemas/v1ProcessingStatus"
              },
              "spec": {
                "$ref": "#/components/schemas/v1ImportedSBOMSpec"
              },
              "tenant_meta": {
                "description": "SBOM are associated with a tenant and tenant information must be provided.",
                "title": "SBOM are associated with a tenant and tenant information must be provided.",
                "type": "object"
              },
              "uuid": {
                "readOnly": true,
                "title": "The UUID of the SBOM",
                "type": "string"
              }
            },
            "type": "object"
          },
          "request": {
            "$ref": "#/components/schemas/v1UpdateRequest"
          }
        },
        "required": [
          "meta",
          "context"
        ],
        "type": "object"
      },
      "ScanProfileServiceCreateScanProfileBody": {
        "description": "ScanProfile represents the scan configuration to use across different\nprojects.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "propagate": {
            "description": "Indicates that the object should be visible in the child namespaces.",
            "type": "boolean"
          },
          "spec": {
            "$ref": "#/components/schemas/v1ScanProfileSpec"
          },
          "tenant_meta": {
            "description": "Tenant related data for the tenant containing the resource.",
            "type": "object"
          },
          "uuid": {
            "description": "UUID is a universally unique identifier for the tool chain profile.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "tenant_meta",
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "ScanProfileServiceUpdateScanProfileBody": {
        "description": "UpdateScanProfileRequest is used by UpdateScanProfile.",
        "properties": {
          "object": {
            "description": "ScanProfile represents the scan configuration to use across different\nprojects.",
            "properties": {
              "meta": {
                "$ref": "#/components/schemas/v1Meta"
              },
              "propagate": {
                "description": "Indicates that the object should be visible in the child namespaces.",
                "type": "boolean"
              },
              "spec": {
                "$ref": "#/components/schemas/v1ScanProfileSpec"
              },
              "tenant_meta": {
                "description": "Tenant related data for the tenant containing the resource.",
                "type": "object"
              },
              "uuid": {
                "description": "UUID is a universally unique identifier for the tool chain profile.",
                "readOnly": true,
                "type": "string"
              }
            },
            "type": "object"
          },
          "request": {
            "$ref": "#/components/schemas/v1UpdateRequest"
          }
        },
        "required": [
          "tenant_meta",
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "ScanResultSpecStatus": {
        "default": "STATUS_UNSPECIFIED",
        "description": "Success state.",
        "enum": [
          "STATUS_UNSPECIFIED",
          "STATUS_SUCCESS",
          "STATUS_PARTIAL_SUCCESS",
          "STATUS_FAILURE",
          "STATUS_RUNNING"
        ],
        "type": "string"
      },
      "ScanResultSpecType": {
        "default": "TYPE_UNSPECIFIED",
        "description": "Scan type. Only used for runtime statistics.\n\n - TYPE_DOCTOR: Deprecated.\n - TYPE_ALERT_POLICIES: Deprecated.\n - TYPE_FINDING_REFRESH: Lightweight re-evaluation of findings from persisted DependencyMetadata,\nwithout a full repository re-scan.",
        "enum": [
          "TYPE_UNSPECIFIED",
          "TYPE_GITHUB",
          "TYPE_GIT",
          "TYPE_ORG",
          "TYPE_PACKAGE",
          "TYPE_ANALYTICS",
          "TYPE_FINDINGS",
          "TYPE_SBOM_IMPORT",
          "TYPE_LINTER",
          "TYPE_ADMISSION_POLICIES",
          "TYPE_DOCTOR",
          "TYPE_NOTIFICATION_POLICIES",
          "TYPE_ALERT_POLICIES",
          "TYPE_ALL_SCANS",
          "TYPE_HOST_CHECK",
          "TYPE_DEPENDENCY_RESOLUTION",
          "TYPE_CALL_GRAPH",
          "TYPE_EXCEPTION_POLICIES",
          "TYPE_FILE_ANALYTICS",
          "TYPE_HUGGING_FACE",
          "TYPE_PROVISIONING",
          "TYPE_WORKFLOW_SCAN",
          "TYPE_PR_SECURITY_REVIEW",
          "TYPE_UIA",
          "TYPE_ANALYTICS_CHECK",
          "TYPE_LICENSE_DISCOVERY",
          "TYPE_FINDING_REFRESH"
        ],
        "type": "string"
      },
      "SecurityAspectMetricSecurityImpactType": {
        "default": "SECURITY_IMPACT_TYPE_UNSPECIFIED",
        "description": "Indicates whether a code change improves security, introduces regression, or is neutral.\n\n - SECURITY_IMPACT_TYPE_UNSPECIFIED: Default unspecified value.\n - SECURITY_IMPACT_TYPE_IMPROVEMENT: The change improves security.\n - SECURITY_IMPACT_TYPE_REGRESSION: The change introduces security regression.\n - SECURITY_IMPACT_TYPE_NEUTRAL: The change has neutral security impact.",
        "enum": [
          "SECURITY_IMPACT_TYPE_UNSPECIFIED",
          "SECURITY_IMPACT_TYPE_IMPROVEMENT",
          "SECURITY_IMPACT_TYPE_REGRESSION",
          "SECURITY_IMPACT_TYPE_NEUTRAL"
        ],
        "type": "string"
      },
      "SpecAMFRecord": {
        "description": "Raw record as received from the AMF (Aikido) malware feed.",
        "properties": {
          "detected_on": {
            "description": "Epoch-seconds timestamp of when AMF detected the malware.",
            "format": "int64",
            "type": "string"
          },
          "ecosystem": {
            "description": "Ecosystem as reported by AMF.",
            "type": "string"
          },
          "id": {
            "description": "AMF's internal identifier for the record.",
            "format": "int64",
            "type": "string"
          },
          "last_updated": {
            "description": "Epoch-seconds timestamp of the last update to the record by AMF.",
            "format": "int64",
            "type": "string"
          },
          "package_name": {
            "description": "Package name as reported by AMF.",
            "type": "string"
          },
          "reasons": {
            "description": "Reasons for flagging the package, as reported by AMF.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "release_date": {
            "description": "Epoch-seconds timestamp of the flagged package version's release.",
            "format": "int64",
            "type": "string"
          },
          "status": {
            "description": "Status of the record as reported by AMF.",
            "type": "string"
          },
          "version": {
            "description": "Package version as reported by AMF.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SpecAffectedPackage": {
        "description": "Package information and version.",
        "properties": {
          "cpe": {
            "type": "string"
          },
          "cpes": {
            "description": "List of CPEs associated with the affected package.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "ecosystem": {
            "$ref": "#/components/schemas/v1Ecosystem"
          },
          "name": {
            "type": "string"
          },
          "purl": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "ecosystem"
        ],
        "type": "object"
      },
      "SpecAffectedRange": {
        "description": "Affected ranges.",
        "properties": {
          "fixed": {
            "description": "The version or commit in which this vulnerability was fixed.",
            "type": "string"
          },
          "introduced": {
            "description": "The earliest version or commit in which this vulnerability was\nintroduced.",
            "type": "string"
          },
          "last_affected": {
            "description": "The last version known to be affected. Versions strictly after this\nare assumed to be fixed. Used when an explicit fixed version is unavailable.",
            "type": "string"
          },
          "repo": {
            "description": "The repository URL.",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/RangeRangeType"
          }
        },
        "type": "object"
      },
      "SpecCVSSSeverityLevel": {
        "default": "CVSS_SEVERITY_LEVEL_UNSPECIFIED",
        "description": "Common severity level enum used across different CVSS versions.",
        "enum": [
          "CVSS_SEVERITY_LEVEL_UNSPECIFIED",
          "CVSS_SEVERITY_LEVEL_NONE",
          "CVSS_SEVERITY_LEVEL_LOW",
          "CVSS_SEVERITY_LEVEL_MEDIUM",
          "CVSS_SEVERITY_LEVEL_HIGH",
          "CVSS_SEVERITY_LEVEL_CRITICAL"
        ],
        "type": "string"
      },
      "SpecCVSSV3Severity": {
        "properties": {
          "level": {
            "$ref": "#/components/schemas/CVSSV3SeverityLevel"
          },
          "score": {
            "description": "The Common Vulnerability Scoring System (CVSS score) provides a\nnumerical (0-10) representation of the severity of an information\nsecurity vulnerability.",
            "format": "float",
            "type": "number"
          },
          "temporal_level": {
            "$ref": "#/components/schemas/CVSSV3SeverityLevel"
          },
          "temporal_score": {
            "description": "The Common Vulnerability Scoring System (CVSS score) provides a\nnumerical (0-10) representation of the severity of an information\nsecurity vulnerability.",
            "format": "float",
            "type": "number"
          },
          "temporal_vector": {
            "description": "A specially formatted vector indicating the attack surface and severity\nof the vulnerability. Format is here:\nhttps://www.first.org/cvss/specification-document.",
            "type": "string"
          },
          "vector": {
            "description": "A specially formatted vector indicating the attack surface and severity\nof the vulnerability. Format is here:\nhttps://www.first.org/cvss/specification-document.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SpecCVSSV4Severity": {
        "properties": {
          "base_level": {
            "$ref": "#/components/schemas/CVSSV4SeverityV4Level"
          },
          "base_score": {
            "description": "The Common Vulnerability Scoring System v4.0 base score provides a\nnumerical (0-10) representation of the severity of an information\nsecurity vulnerability.",
            "format": "float",
            "type": "number"
          },
          "environmental_level": {
            "$ref": "#/components/schemas/CVSSV4SeverityV4Level"
          },
          "environmental_score": {
            "description": "The CVSS v4.0 environmental score provides context-specific scoring\nbased on the deployment environment.",
            "format": "float",
            "type": "number"
          },
          "threat_level": {
            "$ref": "#/components/schemas/CVSSV4SeverityV4Level"
          },
          "threat_score": {
            "description": "The CVSS v4.0 threat score provides additional context about the\nexploitability of the vulnerability.",
            "format": "float",
            "type": "number"
          },
          "vector": {
            "description": "A specially formatted vector indicating the attack surface and severity\nof the vulnerability. Format is here:\nhttps://www.first.org/cvss/v4.0/specification-document.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SpecCVSSVersion": {
        "default": "CVSS_VERSION_UNSPECIFIED",
        "description": "The CVSS version.",
        "enum": [
          "CVSS_VERSION_UNSPECIFIED",
          "CVSS_VERSION_V2",
          "CVSS_VERSION_V3",
          "CVSS_VERSION_V4"
        ],
        "type": "string"
      },
      "SpecEPSSRecord": {
        "properties": {
          "cve_id": {
            "type": "string"
          },
          "ingestion_time": {
            "format": "date-time",
            "type": "string"
          },
          "percentile": {
            "format": "double",
            "type": "number"
          },
          "probability": {
            "format": "double",
            "type": "number"
          }
        },
        "type": "object"
      },
      "SpecEPSSScore": {
        "properties": {
          "percentile_score": {
            "format": "double",
            "type": "number"
          },
          "probability_score": {
            "format": "double",
            "type": "number"
          }
        },
        "type": "object"
      },
      "SpecEnvironment": {
        "properties": {
          "arch": {
            "type": "string"
          },
          "config": {
            "description": "Configuration used by endorctl.\nContains everything except credential values.",
            "type": "object"
          },
          "endorctl_version": {
            "type": "string"
          },
          "memory": {
            "format": "double",
            "type": "number"
          },
          "num_cpus": {
            "format": "int32",
            "type": "integer"
          },
          "os": {
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/EnvironmentTool"
            },
            "type": "array"
          }
        },
        "required": [
          "arch",
          "endorctl_version",
          "config",
          "os",
          "memory",
          "num_cpus"
        ],
        "type": "object"
      },
      "SpecErrorCategory": {
        "default": "ERROR_CATEGORY_UNSPECIFIED",
        "description": "The type of error that the rule is for.",
        "enum": [
          "ERROR_CATEGORY_UNSPECIFIED",
          "ERROR_CATEGORY_PRIVATE_REGISTRY",
          "ERROR_CATEGORY_TOOLCHAIN",
          "ERROR_CATEGORY_REPOSITORY",
          "ERROR_CATEGORY_OTHER"
        ],
        "type": "string"
      },
      "SpecExporterParameters": {
        "properties": {
          "exporter_uuids": {
            "description": "exporter_uuids is the list of exporter objects that will be used for\nexports at the end of the scan.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "SpecFindingData": {
        "description": "Basic finding metadata that can be used to \"plot trends\".",
        "properties": {
          "approximation": {
            "description": "True if this finding is for an approximate dependency\nbased on the unresolved package dependencies.",
            "type": "boolean"
          },
          "categories": {
            "description": "Finding categories.",
            "items": {
              "$ref": "#/components/schemas/v1FindingCategory"
            },
            "type": "array"
          },
          "create_time": {
            "description": "Time the finding was created.\n\nFormat: 2017-01-15T01:30:15.01Z\nRFC 3339: https://www.ietf.org/rfc/rfc3339.txt.",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Finding description.",
            "type": "string"
          },
          "level": {
            "$ref": "#/components/schemas/SpecFindingLevel"
          },
          "name": {
            "description": "Finding name.",
            "type": "string"
          },
          "tags": {
            "description": "Finding tags.",
            "items": {
              "$ref": "#/components/schemas/v1FindingTags"
            },
            "type": "array"
          },
          "target_dependency_package_name": {
            "description": "Fully qualified name of the dependency. For example, eco://package@version.",
            "type": "string"
          },
          "uuid": {
            "description": "Finding UUID.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SpecFindingLevel": {
        "default": "FINDING_LEVEL_UNSPECIFIED",
        "description": "Finding severity level.\n\n - FINDING_LEVEL_CRITICAL: Critical finding.\n - FINDING_LEVEL_HIGH: Very important findings.\n - FINDING_LEVEL_MEDIUM: Important findings.\n - FINDING_LEVEL_LOW: Low priority finding.",
        "enum": [
          "FINDING_LEVEL_UNSPECIFIED",
          "FINDING_LEVEL_CRITICAL",
          "FINDING_LEVEL_HIGH",
          "FINDING_LEVEL_MEDIUM",
          "FINDING_LEVEL_LOW"
        ],
        "type": "string"
      },
      "SpecInternalRecord": {
        "description": "Sanitized projection of the internal malware detection assessment. Deliberately\nNOT the full MalwareDetectionAssessment: that message carries internal-only\nfields (prompt_compressed, llm_call_stats, total_llm_cost, review state) that\nmust never reach GetMalware/ListMalware, which are public, unmasked-by-default\nAPIs. Only add fields here that are safe to return to any Malware caller.",
        "properties": {
          "ecosystem": {
            "$ref": "#/components/schemas/v1Ecosystem"
          },
          "human_reviewed": {
            "description": "Whether a human reviewed this assessment.",
            "type": "boolean"
          },
          "package_name": {
            "description": "Name of the assessed package.",
            "type": "string"
          },
          "reasons": {
            "description": "Reasons for the assessment's verdict.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "result": {
            "$ref": "#/components/schemas/v1MalwareAssessmentResultType"
          },
          "version": {
            "description": "Version of the assessed package.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SpecKEVRecord": {
        "properties": {
          "cve_id": {
            "type": "string"
          },
          "date_added": {
            "format": "date-time",
            "type": "string"
          },
          "due_date": {
            "format": "date-time",
            "type": "string"
          },
          "known_ransomware_campaign_use": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "product": {
            "type": "string"
          },
          "required_action": {
            "type": "string"
          },
          "short_description": {
            "type": "string"
          },
          "vendor_project": {
            "type": "string"
          },
          "vulnerability_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "SpecMalwareRange": {
        "description": "Affected ranges.",
        "properties": {
          "fixed": {
            "description": "The version or commit in which malicious behaviour was fixed.",
            "type": "string"
          },
          "introduced": {
            "description": "The earliest version or commit in which malicious behaviour was\nintroduced.",
            "type": "string"
          },
          "last_affected": {
            "description": "The last version in which malicious behaviour was observed. Used as an\ninclusive upper bound when no fixed version is known (OSV last_affected):\nversions at or below it are affected, versions strictly above are not.",
            "type": "string"
          },
          "osv_id": {
            "description": "The OSV ID for the malware record.",
            "type": "string"
          },
          "repo": {
            "description": "The repository URL.",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/MalwareRangeMalwareRangeType"
          }
        },
        "type": "object"
      },
      "SpecMalwareRanges": {
        "properties": {
          "ranges": {
            "items": {
              "$ref": "#/components/schemas/SpecMalwareRange"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "SpecMalwareSource": {
        "default": "MALWARE_SOURCE_UNSPECIFIED",
        "description": " - MALWARE_SOURCE_ENDOR: Merged from one or more external malware feeds (OSV, AMF, INTERNAL etc).\n - MALWARE_SOURCE_INTERNAL: Endor security research team assessments.",
        "enum": [
          "MALWARE_SOURCE_UNSPECIFIED",
          "MALWARE_SOURCE_ENDOR",
          "MALWARE_SOURCE_OSV",
          "MALWARE_SOURCE_AMF",
          "MALWARE_SOURCE_INTERNAL"
        ],
        "type": "string"
      },
      "SpecMalwareVersion": {
        "properties": {
          "osv_id": {
            "description": "The status of the malware record.",
            "type": "string"
          },
          "version": {
            "description": "The version of the malware record.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SpecPackageManagerStatus": {
        "properties": {
          "error_message": {
            "description": "error_message if any was found.",
            "readOnly": true,
            "type": "string"
          },
          "last_tested_at": {
            "description": "last_tested_at is the time when the package manager was last tested.",
            "format": "date-time",
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/SpecPackageManagerStatusState"
          }
        },
        "type": "object"
      },
      "SpecPackageManagerStatusState": {
        "default": "STATE_UNSPECIFIED",
        "description": "The status of the package manager.",
        "enum": [
          "STATE_UNSPECIFIED",
          "STATE_SUCCESS",
          "STATE_FAIL"
        ],
        "type": "string"
      },
      "SpecPackageVersionData": {
        "description": "Data about a deleted package version that helps justify the\nnumber of dependencies and findings deleted by the scan.",
        "properties": {
          "dependency_count": {
            "description": "Dependency count.",
            "format": "int32",
            "type": "integer"
          },
          "finding_count": {
            "description": "Finding count.",
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "description": "Package version name.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SpecProvisioningResultData": {
        "properties": {
          "auto_detect_result": {
            "$ref": "#/components/schemas/v1AutoDetectResult"
          },
          "automated_scan_parameters_config": {
            "$ref": "#/components/schemas/v1AutomatedScanParametersConfig"
          },
          "error": {
            "description": "Provisioning error message.",
            "type": "string"
          },
          "exit_code": {
            "description": "Provisioning exit code.",
            "format": "int32",
            "type": "integer"
          },
          "provisioning_result_uuid": {
            "description": "UUID of the provisioning result.",
            "type": "string"
          },
          "scan_profile": {
            "$ref": "#/components/schemas/v1ScanProfile"
          },
          "tool_chains": {
            "$ref": "#/components/schemas/v1ToolChains"
          },
          "tool_chains_source": {
            "$ref": "#/components/schemas/v1ToolChainsSource"
          }
        },
        "required": [
          "provisioning_result_uuid"
        ],
        "type": "object"
      },
      "SpecRaw": {
        "properties": {
          "endor_vulnerability": {
            "$ref": "#/components/schemas/endorv1Vulnerability"
          },
          "epss_record": {
            "$ref": "#/components/schemas/SpecEPSSRecord"
          },
          "kev_record": {
            "$ref": "#/components/schemas/SpecKEVRecord"
          },
          "nvd_vulnerability": {
            "$ref": "#/components/schemas/v1NVDVulnerability"
          },
          "osv_vulnerability": {
            "$ref": "#/components/schemas/osvVulnerability"
          }
        },
        "type": "object"
      },
      "SpecRawMalware": {
        "description": "Raw source records for accountability, one field per contributing feed.\nOnly the field(s) matching the record's actual source(s) are populated.\nNamed MalwareRaw, not Raw, so its generated OpenAPI definition doesn't collide\nwith Vuln.Spec.Raw's (both are Spec.Raw, which would force the swagger generator\nto fall back to fully-qualified names and rename Vuln's existing definition).",
        "properties": {
          "amf": {
            "$ref": "#/components/schemas/SpecAMFRecord"
          },
          "internal": {
            "$ref": "#/components/schemas/SpecInternalRecord"
          },
          "osv": {
            "$ref": "#/components/schemas/osvVulnerability"
          }
        },
        "type": "object"
      },
      "SpecScanComponent": {
        "default": "SCAN_COMPONENT_UNSPECIFIED",
        "description": "Identifies an individual scanner component whose execution\ncontributes towards scan credit usage. Used by the licensing\naggregation job to determine how many credits a scan consumed.\n\n - SCAN_COMPONENT_UNSPECIFIED: No component recorded.\n - SCAN_COMPONENT_SCA: Software Composition Analysis scanner ran.\n - SCAN_COMPONENT_SAST: Static Application Security Testing (semgrep) scanner ran.\n - SCAN_COMPONENT_AI_SAST: AI-assisted SAST scanner ran.\n - SCAN_COMPONENT_SECRETS: Secrets scanner ran.",
        "enum": [
          "SCAN_COMPONENT_UNSPECIFIED",
          "SCAN_COMPONENT_SCA",
          "SCAN_COMPONENT_SAST",
          "SCAN_COMPONENT_AI_SAST",
          "SCAN_COMPONENT_SECRETS"
        ],
        "type": "string"
      },
      "SpecSecurityReviewScannerParameters": {
        "properties": {
          "disable_code_summary": {
            "description": "disable_code_summary indicates that the code summary part of the\nsecurity review should be disabled whether or not there are findings.",
            "type": "boolean"
          },
          "user_prompt": {
            "description": "user_prompt is the user prompt for the security review scanner.\nit is used to customize the security review scanner and give the\nability to the user to provide their own prompt to customize the\nsecurity review and the findings that are reported. This is optional.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TargetTargetType": {
        "default": "TARGET_TYPE_UNSPECIFIED",
        "description": " - TARGET_TYPE_LANGUAGE: Language target, for example: Go 1.7 or Java 8.\n - TARGET_TYPE_FRAMEWORK: Framework target, for example: spring boot 2.0 or dotnet 4.6.2.\n - TARGET_TYPE_OS: OS target, for example: linux, windows, macos.\n - TARGET_TYPE_CPU_ARCH: CPU architecture target, for example: amd64, arm64, arm.",
        "enum": [
          "TARGET_TYPE_UNSPECIFIED",
          "TARGET_TYPE_LANGUAGE",
          "TARGET_TYPE_FRAMEWORK",
          "TARGET_TYPE_OS",
          "TARGET_TYPE_CPU_ARCH"
        ],
        "type": "string"
      },
      "TemplateParameterQueryApiData": {
        "description": "Information needed to get the list of possible values via the API.\nUI uses the meta.name and meta.description fields to present options.",
        "properties": {
          "filter": {
            "description": "Optional database filter for the list query (for example,\n\"spec.origin==\\\"LINTER_RESULT_ORIGIN_SECRETS_SCANNER\\\"\").",
            "type": "string"
          },
          "input_field": {
            "description": "Full name of field in resource object to use as input value to policy\ntemplate (for example, \"spec.sarif_result.rule_id\" or\n\"spec.license_id\").",
            "type": "string"
          },
          "namespace": {
            "description": "Optional value for the namespace to be used when retrieving the\npossible data values.",
            "type": "string"
          },
          "resource_kind": {
            "description": "Resource kind (for example, \"LinterResult\" or \"License\").",
            "type": "string"
          }
        },
        "required": [
          "resource_kind",
          "input_field"
        ],
        "type": "object"
      },
      "ToolChainProfileArchitectureToolChain": {
        "properties": {
          "arch": {
            "additionalProperties": {
              "$ref": "#/components/schemas/v1ToolChains"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "VulnSpecAffected": {
        "properties": {
          "affected_callpath_uris": {
            "description": "Affected function URIs in FastenURI format.\nFor example,\n\"/com.atlassian.connect.spring.internal.lifecycle/LifecycleController.installed(%2Fcom.atlassian.connect.spring.internal.lifecycle%2FLifecycleEvent,%2Fcom.atlassian.connect.spring%2FAtlassianHostUser)%2Forg.springframework.http%2FResponseEntity\".",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "affected_filepaths": {
            "description": "Class name that this vulnerability affects in JVM notation.\nFor example,\n\"com/atlassian/connect/spring/internal/lifecycle/LifecycleController.class\".",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "database_specific": {
            "description": "Optional. JSON object holding additional information about the\nvulnerability as defined by the database for which the record applies.",
            "type": "object"
          },
          "ecosystem_specific": {
            "description": "Optional. JSON object holding additional information about the\nvulnerability as defined by the ecosystem for which the record applies.",
            "type": "object"
          },
          "fix_commits": {
            "items": {
              "type": "string"
            },
            "title": "Links to the commits that fix the vulnerability",
            "type": "array"
          },
          "has_been_fixed": {
            "type": "boolean"
          },
          "maintainer_cvss_level": {
            "$ref": "#/components/schemas/SpecCVSSSeverityLevel"
          },
          "maintainer_severity": {
            "$ref": "#/components/schemas/CVSSV3SeverityLevel"
          },
          "package": {
            "$ref": "#/components/schemas/SpecAffectedPackage"
          },
          "ranges": {
            "items": {
              "$ref": "#/components/schemas/SpecAffectedRange"
            },
            "type": "array"
          },
          "reachable_by_inclusion": {
            "description": "The vulnerability is assumed reachable whenever this package is\nincluded; there are no affected function URIs for call-path analysis.",
            "type": "boolean"
          },
          "source": {
            "$ref": "#/components/schemas/AffectedSource"
          },
          "versions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "VulnSpecCredit": {
        "properties": {
          "contact": {
            "description": "Contact methods (URLs).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name to give the credit.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "VulnSpecReference": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ReferenceReferenceType"
          },
          "url": {
            "description": "The vulnerability URL.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "url"
        ],
        "type": "object"
      },
      "VulnerabilityComponent": {
        "properties": {
          "artifact_id": {
            "description": "Indicates the artifact artifact_id that the CVE affects.",
            "type": "string"
          },
          "endor_uri": {
            "description": "Affected function URIs in FastenURI format.\nFor example,\n\"/com.atlassian.connect.spring.internal.lifecycle/LifecycleController.installed(%2Fcom.atlassian.connect.spring.internal.lifecycle%2FLifecycleEvent,%2Fcom.atlassian.connect.spring%2FAtlassianHostUser)%2Forg.springframework.http%2FResponseEntity\".",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "fixed_versions": {
            "description": "A list of all fixed versions.\nCan be more than one if the fix is applied on multiple release branches.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "group_id": {
            "description": "Indicates the artifact group id that the CVE affects.",
            "type": "string"
          },
          "reachable_by_inclusion": {
            "description": "The vulnerability is assumed reachable due to how the artifact is\ntypically used; endor_uri is empty and call-path analysis does not apply.\nThe json_name pins the curated feed's key for protojson parsing.",
            "type": "boolean"
          },
          "versions_range": {
            "description": "Vulnerable version range in Maven notation. For example, \"[1.1.0,2.1.3)\".",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "vulnerable_filepath": {
            "description": "Class name that this vulnerability affects in JVM notation.\nFor example,\n\"com/atlassian/connect/spring/internal/lifecycle/LifecycleController.class\".",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "vulnerable_versions": {
            "description": "A list of all affected artifact versions.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "group_id",
          "artifact_id"
        ],
        "type": "object"
      },
      "endorv1BasicAuth": {
        "description": "BasicAuth carries username + password for HTTP Basic registry auth.",
        "properties": {
          "password": {
            "description": "The password for HTTP Basic registry auth.",
            "type": "string"
          },
          "username": {
            "description": "The username for HTTP Basic registry auth.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "endorv1VersionMetadata": {
        "properties": {
          "checksums": {
            "description": "A list of checksum types.",
            "items": {
              "$ref": "#/components/schemas/v1Checksum"
            },
            "type": "array"
          },
          "consumed": {
            "description": "Set to true once the corresponding source metadata has been created.",
            "type": "boolean"
          },
          "eol_timestamp": {
            "description": "End of life timestamp the package version if known.",
            "format": "date-time",
            "type": "string"
          },
          "last_package_info_attempt": {
            "description": "The last time a per-version PackageInfo enrichment call succeeded for this\nversion. Distinct from last_updated (field 8), which only records that the\nregistry's bulk version listing returned this version. A non-nil value means\nPackageInfo ran and we hold the best enrichment data the registry will give\nus, even if that data is empty (for example tarball-only releases with no\ndeclared license or source code URL). Consumers use this to decide whether a\nper-version enrichment call is still needed.",
            "format": "date-time",
            "type": "string"
          },
          "last_updated": {
            "description": "The last time that this particular version was re-synced with the source.",
            "format": "date-time",
            "type": "string"
          },
          "license": {
            "description": "Raw license information as returned by the package manager.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "license_info": {
            "description": "Detailed license information populated by Endor.",
            "items": {
              "$ref": "#/components/schemas/v1LicenseInfo"
            },
            "type": "array"
          },
          "lts": {
            "description": "Set to true if a version is a long-term support (LTS) version.",
            "type": "boolean"
          },
          "platform_source": {
            "$ref": "#/components/schemas/v1PlatformSource"
          },
          "release_time": {
            "format": "date-time",
            "type": "string"
          },
          "source_code_ref": {
            "description": "The source code reference if known.\nOptional. This can be a tag or a commit SHA.",
            "type": "string"
          },
          "source_code_url": {
            "description": "Source code URL of the package if known.",
            "type": "string"
          },
          "version": {
            "title": "The version of the package.\nFor example - 5.23.4",
            "type": "string"
          }
        },
        "required": [
          "version",
          "release_time",
          "license"
        ],
        "type": "object"
      },
      "endorv1Vulnerability": {
        "description": "Vulnerability models information that can be extracted by analyzing CVEs.",
        "properties": {
          "additional_notes": {
            "description": "Notes by the person that processed the CVE.",
            "type": "string"
          },
          "component": {
            "description": "Information about affected artifacts, versions\nand function identifiers.",
            "items": {
              "$ref": "#/components/schemas/VulnerabilityComponent"
            },
            "type": "array"
          },
          "cve_description": {
            "description": "A freeform textual summary of the vulnerability.",
            "type": "string"
          },
          "cve_id": {
            "description": "The CVE ID, as it appears in the NVD. For example, CVE-2021-36090.",
            "type": "string"
          },
          "cve_references": {
            "items": {
              "type": "string"
            },
            "title": "Web links containing extra information about the CVE",
            "type": "array"
          },
          "cvss_score": {
            "description": "The Common Vulnerability Scoring System (CVSS score) provides a numerical\n(0-10) representation of the severity of an information security\nvulnerability.",
            "format": "float",
            "type": "number"
          },
          "cvss_vector": {
            "title": "A specially formatted vector indicating the attack surface and severity of\nthe vulnerability. Format is here:\nhttps://www.first.org/cvss/specification-document",
            "type": "string"
          },
          "cwe": {
            "title": "The Common Weakness Enumeration field, if any.\nSee: https://cwe.mitre.org",
            "type": "string"
          },
          "deepdive": {
            "description": "Indicates whether the research team performed full analysis on multiple\nartifact_ids involved in CVE.",
            "type": "boolean"
          },
          "disputed": {
            "description": "Indicates whether the research team considers a CVE should be disputed\nbased on analysis.",
            "type": "boolean"
          },
          "ecosystem": {
            "title": "A free form name of the ecosystem, e.g. Maven",
            "type": "string"
          },
          "fix_commit": {
            "items": {
              "type": "string"
            },
            "title": "Links to the commit(s) that fix the vulnerability",
            "type": "array"
          },
          "last_updated": {
            "description": "The timestamp when the vulnerability was last updated.",
            "format": "date-time",
            "type": "string"
          },
          "malicious": {
            "description": "Indicates whether this item is classified as malicious or not.",
            "type": "boolean"
          },
          "nofix": {
            "description": "Indicates whether the fix is not released or not disclosed for a CVE.\nIn such cases, the endor_uri string might not be available.",
            "type": "boolean"
          },
          "package_name": {
            "title": "A free form name of the affected package / project, e.g. Apache\ncommons-compress",
            "type": "string"
          },
          "schema_version": {
            "description": "The schema version used for this vulnerability descriptor.",
            "type": "string"
          },
          "withdrawn": {
            "description": "Indicates whether the underlying vulnerability has been withdrawn.",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "cve_id",
          "cve_description",
          "package_name",
          "ecosystem",
          "schema_version"
        ],
        "type": "object"
      },
      "googleprotobufAny": {
        "additionalProperties": {},
        "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(\u0026foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := \u0026pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := \u0026pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": \u003cstring\u003e,\n      \"lastName\": \u003cstring\u003e\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }",
        "properties": {
          "@type": {
            "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "googlerpcStatus": {
        "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors).",
        "properties": {
          "code": {
            "description": "The status code, which should be an enum value of\n[google.rpc.Code][google.rpc.Code].",
            "format": "int32",
            "type": "integer"
          },
          "details": {
            "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use.",
            "items": {
              "$ref": "#/components/schemas/googleprotobufAny"
            },
            "type": "array"
          },
          "message": {
            "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\n[google.rpc.Status.details][google.rpc.Status.details] field, or localized\nby the client.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "osvAffected": {
        "description": "Affected versions and commits.",
        "properties": {
          "database_specific": {
            "description": "Optional. JSON object holding additional information about the\nvulnerability as defined by the database for which the record applies.",
            "type": "object"
          },
          "ecosystem_specific": {
            "description": "Optional. JSON object holding additional information about the\nvulnerability as defined by the ecosystem for which the record applies.",
            "type": "object"
          },
          "package": {
            "$ref": "#/components/schemas/osvPackage"
          },
          "ranges": {
            "description": "Required. Range information.",
            "items": {
              "$ref": "#/components/schemas/osvRange"
            },
            "type": "array"
          },
          "versions": {
            "description": "Optional. List of affected versions.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "osvCredit": {
        "properties": {
          "contact": {
            "description": "Contact methods (URLs).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name to give credit to.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "osvEvent": {
        "description": "Version events.",
        "properties": {
          "fixed": {
            "description": "The version/commit that this vulnerability was fixed in.",
            "type": "string"
          },
          "introduced": {
            "description": "The earliest version/commit where this vulnerability\nwas introduced in.",
            "type": "string"
          },
          "limit": {
            "description": "The limit to apply to the range.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "osvPackage": {
        "description": "Package information and version.",
        "properties": {
          "ecosystem": {
            "description": "Required. The ecosystem for this package. \nFor the complete list of valid ecosystem names, see\n\u003chttps://ossf.github.io/osv-schema/#affectedpackage-field\u003e.",
            "type": "string"
          },
          "name": {
            "description": "Required. Name of the package. Should match the name used in the package\necosystem (e.g. the npm package name). For C/C++ projects integrated in\nOSS-Fuzz, this is the name used for the integration.",
            "type": "string"
          },
          "purl": {
            "description": "Optional. The package URL for this package.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "osvRange": {
        "description": "Affected ranges.",
        "properties": {
          "events": {
            "description": "Required. Version event information.",
            "items": {
              "$ref": "#/components/schemas/osvEvent"
            },
            "type": "array"
          },
          "repo": {
            "description": "Required if type is GIT. The publicly accessible URL of the repo that can\nbe directly passed to clone commands.",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/osvRangeType"
          }
        },
        "type": "object"
      },
      "osvRangeType": {
        "default": "UNSPECIFIED",
        "description": "Type of the version information.",
        "enum": [
          "UNSPECIFIED",
          "GIT",
          "SEMVER",
          "ECOSYSTEM"
        ],
        "type": "string"
      },
      "osvReference": {
        "description": "Reference URL.",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/osvReferenceType"
          },
          "url": {
            "description": "Required. The URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "osvReferenceType": {
        "default": "NONE",
        "enum": [
          "NONE",
          "WEB",
          "ADVISORY",
          "REPORT",
          "FIX",
          "PACKAGE",
          "ARTICLE"
        ],
        "type": "string"
      },
      "osvSeverity": {
        "properties": {
          "score": {
            "description": "The quantitative score.",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/osvSeverityType"
          }
        },
        "type": "object"
      },
      "osvSeverityType": {
        "default": "UNSPECIFIED",
        "description": "Type of the severity.",
        "enum": [
          "UNSPECIFIED",
          "CVSS_V3"
        ],
        "type": "string"
      },
      "osvVulnerability": {
        "description": "A vulnerability entry.\nThe protobuf representation is *NOT* stable and only used for implementing\nthe JSON based API.",
        "properties": {
          "affected": {
            "description": "Required. Affected commit ranges and versions.",
            "items": {
              "$ref": "#/components/schemas/osvAffected"
            },
            "type": "array"
          },
          "aliases": {
            "description": "Optional. IDs for the same vulnerability in other databases.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "credits": {
            "description": "Optional. Credits for the vulnerability.",
            "items": {
              "$ref": "#/components/schemas/osvCredit"
            },
            "type": "array"
          },
          "database_specific": {
            "description": "Optional. JSON object holding additional information about the\nvulnerability as defined by the database for which the record applies.",
            "type": "object"
          },
          "details": {
            "description": "Required. Any additional human readable details for the vulnerability.",
            "type": "string"
          },
          "id": {
            "description": "The `id` field is a unique identifier for the vulnerability entry. It is a\nstring of the format `\u003cDB\u003e-\u003cENTRYID\u003e`, where `DB` names the database and\n`ENTRYID` is in the format used by the database. For example:\n“OSV-2020-111”, “CVE-2021-3114”, or “GHSA-vp9c-fpxx-744v”.",
            "type": "string"
          },
          "modified": {
            "description": "The RFC3339 timestamp indicating when this entry was last modified.",
            "format": "date-time",
            "type": "string"
          },
          "package": {
            "$ref": "#/components/schemas/osvPackage"
          },
          "published": {
            "description": "The RFC3339 timestamp indicating when this entry was published.",
            "format": "date-time",
            "type": "string"
          },
          "references": {
            "description": "Optional. URLs to more information/advisories (including the\nscheme e.g \"https://\").",
            "items": {
              "$ref": "#/components/schemas/osvReference"
            },
            "type": "array"
          },
          "related": {
            "description": "Optional. List of IDs of closely related vulnerabilities, such as the same\nproblem in alternate ecosystems.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "schema_version": {
            "description": "The OSV schema version.",
            "type": "string"
          },
          "severity": {
            "description": "Optional. Severity of the vulnerability.",
            "items": {
              "$ref": "#/components/schemas/osvSeverity"
            },
            "type": "array"
          },
          "summary": {
            "description": "Required. One line human readable summary for the vulnerability. It is\nrecommended to keep this under 120 characters.",
            "type": "string"
          },
          "withdrawn": {
            "description": "Optional. The RFC3339 timestamp indicating when this entry is considered to\nbe withdrawn.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1AIMeta": {
        "description": "AI metadata for the finding.\nThis is only used for findings generated by AI.",
        "properties": {
          "confidence_justification": {
            "description": "Confidence justification for the finding.",
            "type": "string"
          },
          "confidence_level": {
            "$ref": "#/components/schemas/v1AIMetaConfidenceLevel"
          },
          "llm_context": {
            "$ref": "#/components/schemas/v1LLMContext"
          }
        },
        "type": "object"
      },
      "v1AIMetaConfidenceLevel": {
        "default": "CONFIDENCE_LEVEL_UNSPECIFIED",
        "description": "Confidence level for the finding.\n\n - CONFIDENCE_LEVEL_CRITICAL: Critical finding.\n - CONFIDENCE_LEVEL_HIGH: Very important findings.\n - CONFIDENCE_LEVEL_MEDIUM: Important findings.\n - CONFIDENCE_LEVEL_LOW: Low priority finding.",
        "enum": [
          "CONFIDENCE_LEVEL_UNSPECIFIED",
          "CONFIDENCE_LEVEL_CRITICAL",
          "CONFIDENCE_LEVEL_HIGH",
          "CONFIDENCE_LEVEL_MEDIUM",
          "CONFIDENCE_LEVEL_LOW"
        ],
        "type": "string"
      },
      "v1AIModelProvider": {
        "default": "AI_MODEL_PROVIDER_UNSPECIFIED",
        "description": "Provider the model comes from.\n\n - AI_MODEL_PROVIDER_HUGGING_FACE: The model comes from Hugging Face.\n - AI_MODEL_PROVIDER_OPENAI: The model comes from OpenAI.\n - AI_MODEL_PROVIDER_ANTHROPIC: The model comes from Anthropic.\n - AI_MODEL_PROVIDER_GOOGLE: The model comes from Google.\n - AI_MODEL_PROVIDER_AWS: The model comes from AWS.\n - AI_MODEL_PROVIDER_PERPLEXITY: The model comes from Perplexity.\n - AI_MODEL_PROVIDER_DEEPSEEK: The model comes from DeepSeek.\n - AI_MODEL_PROVIDER_AZUREOPENAI: The model comes from Azure OpenAI.\n - AI_MODEL_PROVIDER_CUSTOM: The model comes from a custom AI provider defined by the user.",
        "enum": [
          "AI_MODEL_PROVIDER_UNSPECIFIED",
          "AI_MODEL_PROVIDER_HUGGING_FACE",
          "AI_MODEL_PROVIDER_OPENAI",
          "AI_MODEL_PROVIDER_ANTHROPIC",
          "AI_MODEL_PROVIDER_GOOGLE",
          "AI_MODEL_PROVIDER_AWS",
          "AI_MODEL_PROVIDER_PERPLEXITY",
          "AI_MODEL_PROVIDER_DEEPSEEK",
          "AI_MODEL_PROVIDER_AZUREOPENAI",
          "AI_MODEL_PROVIDER_CUSTOM"
        ],
        "type": "string"
      },
      "v1AISASTContext": {
        "description": "The code context an AI SAST finding depends on, hashed at scan time, so a\nscheduled refresh can detect modified context by re-hashing these regions.",
        "properties": {
          "callees": {
            "description": "Regions of functions the scanned segment calls.",
            "items": {
              "$ref": "#/components/schemas/v1AISASTContextRegion"
            },
            "type": "array"
          },
          "callers": {
            "description": "Regions of functions that call into the scanned segment.",
            "items": {
              "$ref": "#/components/schemas/v1AISASTContextRegion"
            },
            "type": "array"
          },
          "dataflow": {
            "description": "The finding's dataflow step regions, in order.",
            "items": {
              "$ref": "#/components/schemas/v1AISASTContextRegion"
            },
            "type": "array"
          },
          "fp_summary_hash": {
            "description": "SHA-256 hex of the project's false-positive context summary at scan time.\nA change here can flip the agent's verdict, so it participates in\nrefresh change detection alongside the code regions.",
            "type": "string"
          },
          "hash": {
            "description": "Denormalized SHA-256 hex rollup over all component hashes (segment,\ndataflow, callers, callees, fp_summary_hash). Stored so findings can be\ngrouped or queried by context fingerprint.",
            "type": "string"
          },
          "segment": {
            "$ref": "#/components/schemas/v1AISASTContextRegion"
          }
        },
        "type": "object"
      },
      "v1AISASTContextRegion": {
        "description": "A source region whose content is hashed so a scheduled AI SAST refresh can\ndetect whether that region changed since the finding was last scanned.",
        "properties": {
          "content_hash": {
            "description": "SHA-256 hex hash of the region's source at scan time.",
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/v1SourceLocation"
          }
        },
        "type": "object"
      },
      "v1AISastAnalysisParameters": {
        "description": "Runtime parameters controlling behavior of ai sast analysis.",
        "properties": {
          "fp_triage": {
            "description": "enable false positive triage of sast findings using AI.",
            "type": "boolean"
          },
          "mode": {
            "$ref": "#/components/schemas/AISastAnalysisParametersAISastAnalysisMode"
          },
          "retriage": {
            "description": "enable retriage of sast findings using AI.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "v1APIKey": {
        "description": "Manages the system API keys.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "propagate": {
            "description": "Indicates whether the API key can be used for the child namespaces.",
            "type": "boolean"
          },
          "spec": {
            "$ref": "#/components/schemas/v1APIKeySpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of an API key resource.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta"
        ],
        "type": "object"
      },
      "v1APIKeySpec": {
        "properties": {
          "expiration_time": {
            "description": "The expiration time of the API key.",
            "format": "date-time",
            "type": "string"
          },
          "issuing_user": {
            "$ref": "#/components/schemas/v1User"
          },
          "key": {
            "description": "The identifier of an API key.",
            "readOnly": true,
            "type": "string"
          },
          "permissions": {
            "$ref": "#/components/schemas/v1Permissions"
          },
          "secret": {
            "description": "The secret for the specified API key.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "permissions",
          "expiration_time"
        ],
        "type": "object"
      },
      "v1Actions": {
        "description": "Metadata added by the admission or notification policy scanner.",
        "properties": {
          "policy_uuids": {
            "description": "List of action policies triggered by this finding.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1AndroidToolChain": {
        "properties": {
          "command_line_tools_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "packages": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "command_line_tools_version"
        ],
        "type": "object"
      },
      "v1AuditLog": {
        "description": "AuditLog represents a CRUD operation on a message.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1AuditLogSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of the audit log.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "v1AuditLogSpec": {
        "properties": {
          "claims": {
            "description": "Claims in the context.\n\nFor example:\n\n  \"claims\": [\n    \"ID=19946263398469405566117368291178288812\",\n    \"email=scheduler\",\n    \"email=scheduler@endor.ai\",\n    \"user=scheduler@endor.ai@x509\",\n    \"user=scheduler@x509\",\n    \"x509\",\n    \"issuer=https://api.endorlabs.com/v1\"\n  ]",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "error": {
            "$ref": "#/components/schemas/googlerpcStatus"
          },
          "message_kind": {
            "description": "The kind of the message.",
            "type": "string"
          },
          "message_uuid": {
            "description": "Represents the UUID of the resource which is accessed.",
            "type": "string"
          },
          "operation": {
            "$ref": "#/components/schemas/v1AuditLogSpecOperation"
          },
          "payload": {
            "$ref": "#/components/schemas/googleprotobufAny"
          },
          "remote_address": {
            "type": "string"
          }
        },
        "required": [
          "operation"
        ],
        "type": "object"
      },
      "v1AuditLogSpecOperation": {
        "default": "OPERATION_UNSPECIFIED",
        "enum": [
          "OPERATION_UNSPECIFIED",
          "OPERATION_CREATE",
          "OPERATION_UPDATE",
          "OPERATION_DELETE",
          "OPERATION_UPSERT"
        ],
        "type": "string"
      },
      "v1AuthenticationLog": {
        "description": "Represents a CRUD operation on a message.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1AuthenticationLogSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of the authentication log.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "v1AuthenticationLogSpec": {
        "properties": {
          "authorized_tenants": {
            "description": "The tenants accessible by this user at the time of authentication.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "claims": {
            "description": "Claims in the context.\n\nFor example:\n\n  \"claims\": [\n    \"ID=19946263398469405566117368291178288812\",\n    \"email=scheduler\",\n    \"email=scheduler@endor.ai\",\n    \"user=scheduler@endor.ai@x509\",\n    \"user=scheduler@x509\",\n    \"x509\",\n    \"issuer=https://api.endorlabs.com/v1\"\n  ]",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "error_message": {
            "description": "Error message details if the authentication fails.",
            "type": "string"
          },
          "remote_address": {
            "description": "The remote IP address that was discovered.",
            "type": "string"
          },
          "status": {
            "description": "The return code of the authentication.",
            "format": "int32",
            "type": "integer"
          },
          "success": {
            "description": "Success is set to true if the authentication is succesful.",
            "type": "boolean"
          },
          "uri": {
            "description": "URI used for authentication event.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1AutoDetectResult": {
        "description": "Message for an auto detect result.",
        "properties": {
          "detected_tool_chain_versions": {
            "additionalProperties": {
              "$ref": "#/components/schemas/AutoDetectResultDetectedToolChainVersion"
            },
            "type": "object"
          },
          "detected_versions": {
            "additionalProperties": {
              "$ref": "#/components/schemas/AutoDetectResultDetectedToolChainVersionList"
            },
            "description": "Detected versions by lanaguage.",
            "type": "object"
          },
          "error": {
            "description": "Auto detect error message.",
            "type": "string"
          },
          "tool_chains": {
            "$ref": "#/components/schemas/v1ToolChains"
          }
        },
        "type": "object"
      },
      "v1AutomatedScanParameters": {
        "description": "AutomatedScanParameters represents the parameters that must be applied during\nautomated cloud scans to the projects associated with the corresponding\nprofile.",
        "properties": {
          "additional_environment_variables": {
            "description": "additional_environment_variables sets extra environment variables for the\nscan, specific to languages or tools. By design only ENDOR_-prefixed\nvariables are honored; any entry without the ENDOR_ prefix is silently\ndropped, as are a few reserved ENDOR_ variables the scanner sets itself.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "bazel_configuration": {
            "$ref": "#/components/schemas/AutomatedScanParametersBazelConfiguration"
          },
          "call_graph_languages": {
            "description": "call_graph_languages is the list of languages that should be used to\ncalculate call graphs. If empty, default values are used.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "disable_code_snippet_storage": {
            "description": "disable_code_snippet_storage is a boolean value that indicates if the source code snippet\nrelated to a finding should be stored or displayed. Default will be off.",
            "type": "boolean"
          },
          "disable_code_storage": {
            "description": "disable_code_storage is a boolean value that indicates if the source code related to a finding\nshould be stored or displayed. Default will be off.",
            "type": "boolean"
          },
          "enable_ai_sast_scan": {
            "description": "enable_ai_sast_scan is a boolean value that indicates if AI SAST scan should be requested.",
            "type": "boolean"
          },
          "enable_automated_pr_scans": {
            "description": "enable_automated_pr_scans for this repository will allow the github\napp to selectively scan PRs and merges for this repository.\nIf the project is not part of a github app, this setting will be ingored.",
            "type": "boolean"
          },
          "enable_full_git_log_secret_scan": {
            "description": "enable_full_git_log_secret_scan for this repository.",
            "type": "boolean"
          },
          "enable_pr_comments": {
            "description": "enable_pr_comments for this repository.",
            "type": "boolean"
          },
          "enable_pr_incremental_scan": {
            "description": "enable_pr_incremental_scan is a boolean value that indicates if the PR incremental scan should be requested.",
            "type": "boolean"
          },
          "enable_pr_security_review_scan": {
            "description": "enable_pr_security_review_scan is a boolean value that indicates if a Security Review scan should be requested.",
            "type": "boolean"
          },
          "enable_remediation_action": {
            "description": "enable_remediation_action for this repository.",
            "type": "boolean"
          },
          "enable_sast_scan": {
            "description": "enable_sast_scan for this repository.",
            "type": "boolean"
          },
          "enable_secret_scan": {
            "description": "enable_secret_scan for this repository.",
            "type": "boolean"
          },
          "excluded_paths": {
            "description": "excluded_paths is a list of paths that should be excluded from the scan.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "full_pr_scan": {
            "description": "full_pr_scan indicates whether a full scan should be enabled during PRs.",
            "type": "boolean"
          },
          "full_push_scan": {
            "description": "full_push_scan indicates whether a full scan should be enabled during\npushes.",
            "type": "boolean"
          },
          "included_paths": {
            "description": "included_paths is a list of paths that should be included in the scan.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "languages": {
            "description": "languages is a list of languages that should be scanned. If emtpy\ndefault values are used.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "segment_match_languages": {
            "description": "segment_match_languages is the list of languages to enable segment-match based analysis for.\nClears the default languages if languages is not set explicitly.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1AutomatedScanParametersConfig": {
        "description": "Message for automated scan parameter configuration.",
        "properties": {
          "automated_scan_parameters_source": {
            "$ref": "#/components/schemas/v1AutomatedScanParametersSource"
          },
          "resolved_scan_environment_variables": {
            "description": "Resolved environment variables.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1AutomatedScanParametersSource": {
        "default": "AUTOMATED_SCAN_PARAMETERS_SOURCE_UNSPECIFIED",
        "description": "Automated scan parameter source types.",
        "enum": [
          "AUTOMATED_SCAN_PARAMETERS_SOURCE_UNSPECIFIED",
          "AUTOMATED_SCAN_PARAMETERS_SOURCE_API",
          "AUTOMATED_SCAN_PARAMETERS_SOURCE_FILE",
          "AUTOMATED_SCAN_PARAMETERS_SOURCE_NAMESPACE_DEFAULT"
        ],
        "type": "string"
      },
      "v1BazelMetadata": {
        "description": "BazelMetadata contains the Bazel metadata.",
        "properties": {
          "build_path": {
            "description": "The build path.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1Bom": {
        "properties": {
          "dependencies": {
            "description": "Different package managers use different dependency graph serialization\nstrategies. Include the serialized list here to avoid re-implementing\nthis within endoctl.",
            "items": {
              "$ref": "#/components/schemas/BomDependency"
            },
            "type": "array"
          },
          "dependency_files": {
            "description": "The list of the dependency files used to create the BOM.\nThis field is optional and is only set when the source code of the\npackage versions is known. It will contain the list of relative path of\nfiles used to compute the BOM. For instance for Golang, it will contain\nthe go.mod and go.sum.",
            "items": {
              "$ref": "#/components/schemas/BomDependencyFile"
            },
            "type": "array"
          },
          "dependency_graph": {
            "additionalProperties": {
              "items": {
                "type": "object"
              },
              "type": "array"
            },
            "title": "A dependency graph is a K/V pair of package names.\nThe format of the key must be:\n- mvn://MVN_CENTRAL/foo:bar@2.1\n- mvn://CLIENT_REPO/foo:bar@2.1-SNAPSHOT\n- go://github.com/myorg/myrepo/mypkg@sha",
            "type": "object"
          },
          "resolution_timestamp": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "resolution_timestamp"
        ],
        "type": "object"
      },
      "v1CallGraphAnalysisType": {
        "default": "CALL_GRAPH_ANALYSIS_TYPE_UNSPECIFIED",
        "description": "Call graph analysis type for findings.\n\n - CALL_GRAPH_ANALYSIS_TYPE_UNSPECIFIED: Unspecified call graph analysis type.\n - CALL_GRAPH_ANALYSIS_TYPE_FULL: Full call graph analysis was performed.\n - CALL_GRAPH_ANALYSIS_TYPE_PRECOMPUTED: Precomputed call graph analysis was used.",
        "enum": [
          "CALL_GRAPH_ANALYSIS_TYPE_UNSPECIFIED",
          "CALL_GRAPH_ANALYSIS_TYPE_FULL",
          "CALL_GRAPH_ANALYSIS_TYPE_PRECOMPUTED"
        ],
        "type": "string"
      },
      "v1CargoSpec": {
        "description": "CargoSpec represents a configuration for Cargo.",
        "properties": {
          "priority": {
            "description": "The priority of Cargo.\nPriorities are relative. If multiple package managers\nhave the same priority, the order between them can be random.\nLower number means higher priority.",
            "format": "int32",
            "type": "integer"
          },
          "token": {
            "description": "A token that must be provided by the repository owner.",
            "type": "string"
          },
          "url": {
            "description": "The url of the crates registry that Cargo must use.",
            "type": "string"
          }
        },
        "required": [
          "priority"
        ],
        "type": "object"
      },
      "v1CategoryScore": {
        "description": "The score for one score category. The is the overall score\nfor a specific category. It is computed from the score factors that\nhave been created for the category. There is going to be only a single\ninstance of this information for the repo per score category.\n\nExample:\n\nCategory: SCORE_CATEGORY_BEST_PRACTICES\n\nScore: 5\n\nDescription: This score provides an overview of how this repo does when considering security best practices.\n\nThe value is a number in the range 1 to 10, with 10 being the best.",
        "properties": {
          "category": {
            "$ref": "#/components/schemas/v1ScoreCategory"
          },
          "centered_score": {
            "description": "Centered score for the category. This score is\nnormalized to be centered on 5 and is a float, so it has a higher resolution.",
            "format": "float",
            "type": "number"
          },
          "description": {
            "description": "Text description of the category.",
            "type": "string"
          },
          "raw_score": {
            "description": "Raw score for the category. This is the score by\nadding up the score factors, not centered around 5.",
            "format": "float",
            "type": "number"
          },
          "score": {
            "description": "The score for this score.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "v1Checksum": {
        "description": "The details of checksum including the algorithm used to prepare the checksum.",
        "properties": {
          "algorithm": {
            "$ref": "#/components/schemas/ChecksumHashAlgorithm"
          },
          "value": {
            "description": "A string representation (base64 encoded) of the SHA/MD5 checksum of the package.",
            "type": "string"
          }
        },
        "required": [
          "value",
          "algorithm"
        ],
        "type": "object"
      },
      "v1CocoapodSpec": {
        "description": "Represents a configuration for the Cocoapod package manager.\nCocoapods does not support any registry authentication.",
        "properties": {
          "priority": {
            "description": "The priority of the Cocoapod package manager.\nPriorities are relative. If multiple package managers\nhave the same priority, the order between them can be random.\nLower number means higher priority.",
            "format": "int32",
            "type": "integer"
          },
          "url": {
            "description": "The URL of the registry that the Cocoapods package manager must use.",
            "type": "string"
          }
        },
        "required": [
          "priority"
        ],
        "type": "object"
      },
      "v1CodeOwnerData": {
        "description": "Code owner information for a file path or pattern.",
        "properties": {
          "labels": {
            "description": "List of labels.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "owners": {
            "description": "List of code owners.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1ConanSpec": {
        "description": "Represents a configuration for the Conan package manager.",
        "properties": {
          "aws": {
            "$ref": "#/components/schemas/PackageManagerAWSAuthProvider"
          },
          "basic_auth": {
            "$ref": "#/components/schemas/v1ConanSpecBasicAuth"
          },
          "priority": {
            "description": "The priority of the Conan package manager.\nPriorities are relative. If multiple package managers\nhave the same priority, the order between them can be random.\nLower number means higher priority.",
            "format": "int32",
            "type": "integer"
          },
          "remote_name": {
            "description": "The logical name of the remote in the Conan client configuration.",
            "type": "string"
          },
          "url": {
            "description": "The URL of the Conan remote registry.",
            "type": "string"
          }
        },
        "required": [
          "priority"
        ],
        "type": "object"
      },
      "v1ConanSpecBasicAuth": {
        "properties": {
          "password": {
            "description": "Password or API token for basic auth.",
            "type": "string"
          },
          "username": {
            "description": "Username for basic auth (JFrog Artifactory or self-hosted).",
            "type": "string"
          }
        },
        "required": [
          "username",
          "password"
        ],
        "type": "object"
      },
      "v1ContainerArchitecture": {
        "default": "CONTAINER_ARCHITECTURE_UNSPECIFIED",
        "description": "Container architecture.\n\n - CONTAINER_ARCHITECTURE_UNSPECIFIED: Unspecified architecture.\n - CONTAINER_ARCHITECTURE_UNKNOWN: Unknown architecture.\n - CONTAINER_ARCHITECTURE_AMD64: amd64 (64-bit x86) architecture.\n - CONTAINER_ARCHITECTURE_386: 386 (32-bit x86) architecture.\n - CONTAINER_ARCHITECTURE_ARM: arm (32-bit ARM) architecture.\n - CONTAINER_ARCHITECTURE_ARM64: arm64 (64-bit ARM) architecture.\n - CONTAINER_ARCHITECTURE_PPC64LE: ppc64le (PowerPC 64-bit, little-endian) architecture.\n - CONTAINER_ARCHITECTURE_PPC64: ppc64 (PowerPC 64-bit, big-endian) architecture  .\n - CONTAINER_ARCHITECTURE_MIPS64LE: mips64le (MIPS 64-bit, little-endian) architecture.\n - CONTAINER_ARCHITECTURE_MIPS64: mips64 (MIPS 64-bit, big-endian) architecture.\n - CONTAINER_ARCHITECTURE_MIPSLE: mipsle (MIPS 32-bit, little-endian) architecture.\n - CONTAINER_ARCHITECTURE_MIPS: mips (MIPS 32-bit, big-endian) architecture.\n - CONTAINER_ARCHITECTURE_S390X: s390x (IBM System z 64-bit, big-endian) architecture.\n - CONTAINER_ARCHITECTURE_WASM: wasm (WebAssembly 32-bit) architecture.",
        "enum": [
          "CONTAINER_ARCHITECTURE_UNSPECIFIED",
          "CONTAINER_ARCHITECTURE_UNKNOWN",
          "CONTAINER_ARCHITECTURE_AMD64",
          "CONTAINER_ARCHITECTURE_386",
          "CONTAINER_ARCHITECTURE_ARM",
          "CONTAINER_ARCHITECTURE_ARM64",
          "CONTAINER_ARCHITECTURE_PPC64LE",
          "CONTAINER_ARCHITECTURE_PPC64",
          "CONTAINER_ARCHITECTURE_MIPS64LE",
          "CONTAINER_ARCHITECTURE_MIPS64",
          "CONTAINER_ARCHITECTURE_MIPSLE",
          "CONTAINER_ARCHITECTURE_MIPS",
          "CONTAINER_ARCHITECTURE_S390X",
          "CONTAINER_ARCHITECTURE_WASM"
        ],
        "type": "string"
      },
      "v1ContainerAsBase": {
        "description": "ContainerAsBase captures usage of this container image as a base image elsewhere.",
        "properties": {
          "first_seen": {
            "description": "First time this image was seen used as a base image.",
            "format": "date-time",
            "type": "string"
          },
          "last_seen": {
            "description": "Most recent time this image was seen used as a base image.",
            "format": "date-time",
            "type": "string"
          },
          "update_options": {
            "$ref": "#/components/schemas/v1ContainerImageUpdateOptions"
          },
          "use_count": {
            "description": "Number of times this image has been seen used as a base image.\nThis number is used for trending and it's not meant for exact usage tracking.",
            "format": "uint64",
            "type": "string"
          },
          "used": {
            "description": "True if this image is used as a base image elsewhere.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "v1ContainerBaseImage": {
        "description": "The base image of a container Image.",
        "properties": {
          "chain_id": {
            "description": "Chain ID for the base image's layers.",
            "type": "string"
          },
          "digest": {
            "description": "The SHA256 digest of the base image.",
            "type": "string"
          },
          "name": {
            "description": "The name of the base image. For example, \"debian:bookworm-slim\".",
            "type": "string"
          },
          "package_version_uuid": {
            "description": "The UUID of the base image's own PackageVersion, if it has been scanned.\nPopulated by the scanner from the in-memory base image lookup at scan\ntime; consumers that need this after the fact and find it unset may fall\nback to a digest-based PackageVersion lookup.",
            "type": "string"
          },
          "update_options": {
            "$ref": "#/components/schemas/v1ContainerImageUpdateOptions"
          }
        },
        "type": "object"
      },
      "v1ContainerCompositionMetadata": {
        "description": "ContainerCompositionMetadata is the metadata of the composition of a container image.",
        "properties": {
          "package_type": {
            "$ref": "#/components/schemas/v1ContainerPackageType"
          }
        },
        "type": "object"
      },
      "v1ContainerContextDiff": {
        "description": "State of the context-diff suppression feature for one container scan.",
        "properties": {
          "baseline_package_version_uuid": {
            "description": "Baseline PackageVersion used by the last reconcile. Informational only:\nthe reconcile always re-resolves the baseline rather than trusting this,\nsince a MAIN rescan replaces the baseline PV with a new UUID.",
            "type": "string"
          },
          "last_reconcile_time": {
            "description": "When the reconcile pass (CLI-triggered or the periodic auto-reconcile)\nlast ran for this scan.",
            "format": "date-time",
            "type": "string"
          },
          "record_scope": {
            "$ref": "#/components/schemas/ContainerContextDiffRecordScope"
          },
          "suppress_baseline_findings": {
            "description": "True once --snooze-baseline-findings has been applied to this scan; makes\nthe periodic finding refresh re-run the reconcile pass against the\ncurrent baseline for as long as this stays true.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "v1ContainerDependencyLayer": {
        "description": "ContainerDependency is a dependency of a container image.",
        "properties": {
          "digest": {
            "description": "The SHA256 digest of the layer,\nwhere a dependency is found to be present in the container.",
            "type": "string"
          },
          "file_locations": {
            "description": "The locations of the files in the container,\nthrough which the dependency is evident to be present in the container.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "digest"
        ],
        "type": "object"
      },
      "v1ContainerDependencyMetadata": {
        "properties": {
          "first_reachable_time": {
            "description": "First time this dependency was determined to be reachable in an application image.",
            "format": "date-time",
            "type": "string"
          },
          "last_reachable_time": {
            "description": "Most recent time this dependency was determined to be reachable in an application image.",
            "format": "date-time",
            "type": "string"
          },
          "layers": {
            "description": "Layers of the container image where a dependency is found.\nThis is an optional field.\nIt is only set when target dependency is found via container image scan.",
            "items": {
              "$ref": "#/components/schemas/v1ContainerLayerMetadata"
            },
            "type": "array"
          },
          "reachable_count": {
            "description": "Number of times this dependency was determined to be reachable in an application image.\nThis number is used for trending and it's not meant for exact usage tracking.",
            "format": "uint64",
            "type": "string"
          },
          "runtime_files": {
            "description": "Files accessed when a dependency is called at runtime in the container image.\nThis is an optional field.\nIt is only set when the dependency is found to be used at runtime in the container image.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "user_application_dependency": {
            "description": "Set to true if this is a user application dependency.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "v1ContainerImageUpdateOption": {
        "description": "ContainerImageUpdateOption describes a single base image update candidate.",
        "properties": {
          "chain_id": {
            "description": "Chain ID for the candidate image's layers.",
            "type": "string"
          },
          "digest": {
            "description": "The SHA256 digest of the candidate image (e.g., \"sha256:...\").",
            "type": "string"
          },
          "name": {
            "description": "Full image reference including registry, repository, and tag\n(e.g., \"docker.io/library/ubuntu:22.04\").",
            "type": "string"
          },
          "package_version_uuid": {
            "description": "UUID of the container PackageVersion produced by scanning this candidate.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1ContainerImageUpdateOptions": {
        "description": "ContainerImageUpdateOptions groups possible base image update candidates.",
        "properties": {
          "latest_version": {
            "$ref": "#/components/schemas/v1ContainerImageUpdateOption"
          },
          "next_version": {
            "$ref": "#/components/schemas/v1ContainerImageUpdateOption"
          },
          "refreshed": {
            "$ref": "#/components/schemas/v1ContainerImageUpdateOption"
          },
          "update_time": {
            "description": "Time when these update options were determined.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1ContainerLayer": {
        "description": "A layer of a container image.",
        "properties": {
          "base_layer": {
            "description": "True if the layer is came through the base image otherwise false.",
            "type": "boolean"
          },
          "command": {
            "description": "The command that was run to create the layer.\nFor example, `COPY /app /app`.\nThis is an optional field.",
            "type": "string"
          },
          "digest": {
            "description": "digest is the sha256 digest of the layer.",
            "type": "string"
          }
        },
        "required": [
          "digest"
        ],
        "type": "object"
      },
      "v1ContainerLayerMetadata": {
        "properties": {
          "base_layer": {
            "description": "Set to true if this is the base image layer.",
            "type": "boolean"
          },
          "digest": {
            "description": "The SHA256 digest of the container image layer.",
            "type": "string"
          },
          "file_locations": {
            "description": "File locations on the container file system that reference the dependency.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "digest"
        ],
        "type": "object"
      },
      "v1ContainerMetadata": {
        "description": "ContainerMetadata is the metadata of a container image.",
        "properties": {
          "architecture": {
            "$ref": "#/components/schemas/v1ContainerArchitecture"
          },
          "base_image": {
            "$ref": "#/components/schemas/v1ContainerBaseImage"
          },
          "chain_id": {
            "description": "Chain ID for the image's layers.",
            "type": "string"
          },
          "command": {
            "description": "List of container command arguments.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "context_diff": {
            "$ref": "#/components/schemas/v1ContainerContextDiff"
          },
          "digest": {
            "description": "The SHA256 digest of the container image.",
            "type": "string"
          },
          "distribution": {
            "description": "The OS distribution of the base image.",
            "type": "string"
          },
          "entrypoint": {
            "description": "List of container entrypoint arguments.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "environment": {
            "description": "List of container environment variables.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "exposed_ports": {
            "description": "List of container exposed ports.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of container labels.",
            "type": "object"
          },
          "layers": {
            "description": "The list of layers of the container in the order they are applied to\nassemble the container image. The layers are the SHA256 digest of the\ncontainer image layers. The list is equivalent to the output of `docker\ninspect --format='{{.RootFS.Layers}}' \u003cimage\u003e`.",
            "items": {
              "$ref": "#/components/schemas/v1ContainerLayer"
            },
            "type": "array"
          },
          "previous_base_image": {
            "$ref": "#/components/schemas/v1ContainerBaseImage"
          },
          "profile_details": {
            "$ref": "#/components/schemas/v1ContainerProfileDetails"
          },
          "profile_error": {
            "$ref": "#/components/schemas/v1ContainerProfileError"
          },
          "profiled": {
            "description": "True if the container image has been profiled.",
            "type": "boolean"
          },
          "repo_digest": {
            "description": "The repo digest of the container image (e.g., \"your-image-name@sha256:...\").",
            "type": "string"
          },
          "used_as_base": {
            "$ref": "#/components/schemas/v1ContainerAsBase"
          },
          "version": {
            "description": "The version of the OS distribution of the base image.",
            "type": "string"
          },
          "working_directory": {
            "description": "The working directory of the container.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1ContainerPackageType": {
        "default": "CONTAINER_PACKAGE_TYPE_UNSPECIFIED",
        "description": "ContainerPackageType is the type of container package.\n\n - CONTAINER_PACKAGE_TYPE_UNSPECIFIED: Unspecified container package type.\n - CONTAINER_PACKAGE_TYPE_LIBRARY: Library container package type.\n - CONTAINER_PACKAGE_TYPE_APPLICATION: Application container package type.\n - CONTAINER_PACKAGE_TYPE_APPLICATION_LIBRARY: Application and Library container package type.\n - CONTAINER_PACKAGE_TYPE_OS_LIBRARY: OS Library container package type.\n - CONTAINER_PACKAGE_TYPE_OS_APPLICATION: OS Application container package type.\n - CONTAINER_PACKAGE_TYPE_OS_APPLICATION_LIBRARY: OS Application and Library container package type.",
        "enum": [
          "CONTAINER_PACKAGE_TYPE_UNSPECIFIED",
          "CONTAINER_PACKAGE_TYPE_LIBRARY",
          "CONTAINER_PACKAGE_TYPE_APPLICATION",
          "CONTAINER_PACKAGE_TYPE_APPLICATION_LIBRARY",
          "CONTAINER_PACKAGE_TYPE_OS_LIBRARY",
          "CONTAINER_PACKAGE_TYPE_OS_APPLICATION",
          "CONTAINER_PACKAGE_TYPE_OS_APPLICATION_LIBRARY"
        ],
        "type": "string"
      },
      "v1ContainerProfileDetails": {
        "description": "ContainerProfileDetails represents the details of the container profiling.",
        "properties": {
          "application_type": {
            "$ref": "#/components/schemas/ContainerProfileDetailsApplicationType"
          },
          "detected_as_base_image": {
            "description": "True if container image is a generic base image.\nFor example, \"debian:bookworm-slim\" where entry point is generic shell like \"/bin/sh\" or \"/bin/bash\".",
            "type": "boolean"
          },
          "duration_ms": {
            "description": "The duration of the profile in milliseconds.",
            "format": "int64",
            "type": "string"
          },
          "entry_point_package_version_name": {
            "description": "Dependency that boots the container image and creates Process ID (PID) 1.",
            "type": "string"
          },
          "profile_type": {
            "$ref": "#/components/schemas/ContainerProfileDetailsProfileType"
          }
        },
        "type": "object"
      },
      "v1ContainerProfileError": {
        "description": "ContainerProfileError represents the error while profiling the container image.",
        "properties": {
          "description": {
            "description": "A description of the profile error.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ContainerProfileErrorContainerProfileStatus"
          }
        },
        "type": "object"
      },
      "v1ContainerRuntimeDependencyFile": {
        "description": "ContainerRuntimeDependencyFile is a file accessed in the container image at runtime.",
        "properties": {
          "digests": {
            "description": "Digest of the file.",
            "items": {
              "$ref": "#/components/schemas/v1Digest"
            },
            "type": "array"
          },
          "file_type": {
            "$ref": "#/components/schemas/v1FileType"
          },
          "path": {
            "description": "Path of the dependency file as seen in the container image.",
            "type": "string"
          },
          "real_path": {
            "description": "Actual path of the file accessed when a dependency is called at runtime in the\ncontainer image.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1Context": {
        "description": "Contexts keep objects from different scans separated.",
        "properties": {
          "id": {
            "description": "The context ID, such as a pull request ID or branch reference.",
            "type": "string"
          },
          "tags": {
            "description": "A list of tags applied to a context. Used primarily for CI and SBOM\ncontexts.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "type": {
            "$ref": "#/components/schemas/ContextContextType"
          },
          "will_be_deleted_at": {
            "description": "Time that all objects in this context will be deleted.\nThis field is deprecated and will be removed in the future.\nPlease use the meta.will_be_deleted_at field instead.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "type": "object"
      },
      "v1Correctness": {
        "default": "CORRECTNESS_UNSPECIFIED",
        "description": "Correctness represents a correctness assessment.\n\n - CORRECTNESS_TRUE_POSITIVE: The AI analysis result is a true positive.\n - CORRECTNESS_FALSE_POSITIVE: The AI analysis result is a false positive.\n - CORRECTNESS_FALSE_NEGATIVE: The AI analysis result is a false negative.\n - CORRECTNESS_UNKNOWN: The AI analysis result is unknown.",
        "enum": [
          "CORRECTNESS_UNSPECIFIED",
          "CORRECTNESS_TRUE_POSITIVE",
          "CORRECTNESS_FALSE_POSITIVE",
          "CORRECTNESS_FALSE_NEGATIVE",
          "CORRECTNESS_UNKNOWN"
        ],
        "type": "string"
      },
      "v1CorrectnessAnalyzer": {
        "default": "CORRECTNESS_ANALYZER_UNSPECIFIED",
        "description": "CorrectnessAnalyzer represents the analyzer used to determine the correctness of a linter result.",
        "enum": [
          "CORRECTNESS_ANALYZER_UNSPECIFIED",
          "CORRECTNESS_ANALYZER_AI_GEMINI_FLASH_2_5",
          "CORRECTNESS_ANALYZER_AI_GEMINI_FLASH_2_5_LITE",
          "CORRECTNESS_ANALYZER_AI_GEMINI_FLASH_LATEST",
          "CORRECTNESS_ANALYZER_AI_GEMINI_FLASH_LITE_LATEST"
        ],
        "type": "string"
      },
      "v1CountResponse": {
        "description": "Response to a list count request.",
        "properties": {
          "count": {
            "description": "Number of objects matching the given list parameters.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "v1CvssDataV2": {
        "properties": {
          "access_complexity": {
            "$ref": "#/components/schemas/CvssDataV2AccessComplexity"
          },
          "access_vector": {
            "$ref": "#/components/schemas/v1NVDAttackVector"
          },
          "authentication": {
            "$ref": "#/components/schemas/CvssDataV2Auth"
          },
          "availability_impact": {
            "$ref": "#/components/schemas/CvssDataV2V2Impact"
          },
          "availability_requirement": {
            "$ref": "#/components/schemas/v1NVDRequirement"
          },
          "base_score": {
            "format": "float",
            "type": "number"
          },
          "collateral_damage_potential": {
            "$ref": "#/components/schemas/CvssDataV2CollateralDamagePotential"
          },
          "confidentiality_impact": {
            "$ref": "#/components/schemas/CvssDataV2V2Impact"
          },
          "confidentiality_requirement": {
            "$ref": "#/components/schemas/v1NVDRequirement"
          },
          "environmental_score": {
            "format": "float",
            "type": "number"
          },
          "exploitability": {
            "$ref": "#/components/schemas/CvssDataV2Exploitability"
          },
          "integrity_impact": {
            "$ref": "#/components/schemas/CvssDataV2V2Impact"
          },
          "integrity_requirement": {
            "$ref": "#/components/schemas/v1NVDRequirement"
          },
          "remediation_level": {
            "$ref": "#/components/schemas/v1NVDRemediationLevel"
          },
          "report_confidence": {
            "$ref": "#/components/schemas/CvssDataV2ReportConfidence"
          },
          "target_distribution": {
            "$ref": "#/components/schemas/CvssDataV2TargetDistribution"
          },
          "temporal_score": {
            "format": "float",
            "type": "number"
          },
          "vector_string": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version",
          "vector_string",
          "base_score"
        ],
        "type": "object"
      },
      "v1CvssDataV30": {
        "properties": {
          "attack_complexity": {
            "$ref": "#/components/schemas/v1NVDAttackComplexity"
          },
          "attack_vector": {
            "$ref": "#/components/schemas/v1NVDAttackVector"
          },
          "availability_impact": {
            "$ref": "#/components/schemas/v1NVDImpact"
          },
          "availability_requirement": {
            "$ref": "#/components/schemas/v1NVDRequirement"
          },
          "base_score": {
            "format": "float",
            "type": "number"
          },
          "base_severity": {
            "$ref": "#/components/schemas/v1NVDSeverity"
          },
          "confidentiality_impact": {
            "$ref": "#/components/schemas/v1NVDImpact"
          },
          "confidentiality_requirement": {
            "$ref": "#/components/schemas/v1NVDRequirement"
          },
          "environmental_score": {
            "format": "float",
            "type": "number"
          },
          "environmental_severity": {
            "$ref": "#/components/schemas/v1NVDSeverity"
          },
          "exploit_code_maturity": {
            "$ref": "#/components/schemas/v1NVDExploitCodeMaturity"
          },
          "integrity_impact": {
            "$ref": "#/components/schemas/v1NVDImpact"
          },
          "integrity_requirement": {
            "$ref": "#/components/schemas/v1NVDRequirement"
          },
          "modified_attack_complexity": {
            "$ref": "#/components/schemas/v1NVDModifiedAttackComplexity"
          },
          "modified_attack_vector": {
            "$ref": "#/components/schemas/v1NVDModifiedAttackVector"
          },
          "modified_availability_impact": {
            "$ref": "#/components/schemas/v1NVDModifiedImpact"
          },
          "modified_confidentiality_impact": {
            "$ref": "#/components/schemas/v1NVDModifiedImpact"
          },
          "modified_integrity_impact": {
            "$ref": "#/components/schemas/v1NVDModifiedImpact"
          },
          "modified_privileges_required": {
            "$ref": "#/components/schemas/v1NVDModifiedPrivilegesRequired"
          },
          "modified_scope": {
            "$ref": "#/components/schemas/v1NVDModifiedScope"
          },
          "modified_user_interaction": {
            "$ref": "#/components/schemas/v1NVDModifiedUserInteraction"
          },
          "privileges_required": {
            "$ref": "#/components/schemas/v1NVDPrivilegesRequired"
          },
          "remediation_level": {
            "$ref": "#/components/schemas/v1NVDRemediationLevel"
          },
          "report_confidence": {
            "$ref": "#/components/schemas/v1NVDReportConfidence"
          },
          "scope": {
            "$ref": "#/components/schemas/v1NVDScope"
          },
          "temporal_score": {
            "format": "float",
            "type": "number"
          },
          "temporal_severity": {
            "$ref": "#/components/schemas/v1NVDSeverity"
          },
          "user_interaction": {
            "$ref": "#/components/schemas/v1NVDUserInteraction"
          },
          "vector_string": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version",
          "vector_string",
          "base_score",
          "base_severity"
        ],
        "type": "object"
      },
      "v1CvssDataV31": {
        "properties": {
          "attack_complexity": {
            "$ref": "#/components/schemas/v1NVDAttackComplexity"
          },
          "attack_vector": {
            "$ref": "#/components/schemas/v1NVDAttackVector"
          },
          "availability_impact": {
            "$ref": "#/components/schemas/v1NVDImpact"
          },
          "availability_requirement": {
            "$ref": "#/components/schemas/v1NVDRequirement"
          },
          "base_score": {
            "format": "float",
            "type": "number"
          },
          "base_severity": {
            "$ref": "#/components/schemas/v1NVDSeverity"
          },
          "confidentiality_impact": {
            "$ref": "#/components/schemas/v1NVDImpact"
          },
          "confidentiality_requirement": {
            "$ref": "#/components/schemas/v1NVDRequirement"
          },
          "environmental_score": {
            "format": "float",
            "type": "number"
          },
          "environmental_severity": {
            "$ref": "#/components/schemas/v1NVDSeverity"
          },
          "exploit_code_maturity": {
            "$ref": "#/components/schemas/v1NVDExploitCodeMaturity"
          },
          "integrity_impact": {
            "$ref": "#/components/schemas/v1NVDImpact"
          },
          "integrity_requirement": {
            "$ref": "#/components/schemas/v1NVDRequirement"
          },
          "modified_attack_complexity": {
            "$ref": "#/components/schemas/v1NVDModifiedAttackComplexity"
          },
          "modified_attack_vector": {
            "$ref": "#/components/schemas/v1NVDModifiedAttackVector"
          },
          "modified_availability_impact": {
            "$ref": "#/components/schemas/v1NVDModifiedImpact"
          },
          "modified_confidentiality_impact": {
            "$ref": "#/components/schemas/v1NVDModifiedScope"
          },
          "modified_integrity_impact": {
            "$ref": "#/components/schemas/v1NVDModifiedImpact"
          },
          "modified_privileges_required": {
            "$ref": "#/components/schemas/v1NVDModifiedPrivilegesRequired"
          },
          "modified_scope": {
            "$ref": "#/components/schemas/v1NVDModifiedScope"
          },
          "modified_user_interaction": {
            "$ref": "#/components/schemas/v1NVDModifiedUserInteraction"
          },
          "privileges_required": {
            "$ref": "#/components/schemas/v1NVDPrivilegesRequired"
          },
          "remediation_level": {
            "$ref": "#/components/schemas/v1NVDRemediationLevel"
          },
          "report_confidence": {
            "$ref": "#/components/schemas/v1NVDReportConfidence"
          },
          "scope": {
            "$ref": "#/components/schemas/v1NVDScope"
          },
          "temporal_score": {
            "format": "float",
            "type": "number"
          },
          "temporal_severity": {
            "$ref": "#/components/schemas/v1NVDSeverity"
          },
          "user_interaction": {
            "$ref": "#/components/schemas/v1NVDUserInteraction"
          },
          "vector_string": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version",
          "vector_string",
          "base_score",
          "base_severity"
        ],
        "type": "object"
      },
      "v1CvssDataV40": {
        "properties": {
          "attack_complexity": {
            "$ref": "#/components/schemas/v1NVDV40AttackComplexity"
          },
          "attack_requirements": {
            "$ref": "#/components/schemas/v1NVDV40AttackRequirements"
          },
          "attack_vector": {
            "$ref": "#/components/schemas/v1NVDV40AttackVector"
          },
          "automatable": {
            "$ref": "#/components/schemas/v1NVDV40Automatable"
          },
          "availability_requirement": {
            "$ref": "#/components/schemas/v1NVDV40Requirement"
          },
          "base_score": {
            "format": "float",
            "type": "number"
          },
          "base_severity": {
            "$ref": "#/components/schemas/v1NVDSeverity"
          },
          "confidentiality_requirement": {
            "$ref": "#/components/schemas/v1NVDV40Requirement"
          },
          "environmental_score": {
            "format": "float",
            "type": "number"
          },
          "environmental_severity": {
            "$ref": "#/components/schemas/v1NVDSeverity"
          },
          "exploit_maturity": {
            "$ref": "#/components/schemas/v1NVDV40ExploitMaturity"
          },
          "integrity_requirement": {
            "$ref": "#/components/schemas/v1NVDV40Requirement"
          },
          "modified_attack_complexity": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedAttackComplexity"
          },
          "modified_attack_requirements": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedAttackRequirements"
          },
          "modified_attack_vector": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedAttackVector"
          },
          "modified_privileges_required": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedPrivilegesRequired"
          },
          "modified_sub_availability_impact": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedSubImpact"
          },
          "modified_sub_confidentiality_impact": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedSubImpact"
          },
          "modified_sub_integrity_impact": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedSubImpact"
          },
          "modified_user_interaction": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedUserInteraction"
          },
          "modified_vuln_availability_impact": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedImpact"
          },
          "modified_vuln_confidentiality_impact": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedImpact"
          },
          "modified_vuln_integrity_impact": {
            "$ref": "#/components/schemas/v1NVDV40ModifiedImpact"
          },
          "privileges_required": {
            "$ref": "#/components/schemas/v1NVDV40PrivilegesRequired"
          },
          "provider_urgency": {
            "$ref": "#/components/schemas/v1NVDV40ProviderUrgency"
          },
          "recovery": {
            "$ref": "#/components/schemas/v1NVDV40Recovery"
          },
          "safety": {
            "$ref": "#/components/schemas/v1NVDV40Safety"
          },
          "sub_availability_impact": {
            "$ref": "#/components/schemas/v1NVDV40Impact"
          },
          "sub_confidentiality_impact": {
            "$ref": "#/components/schemas/v1NVDV40Impact"
          },
          "sub_integrity_impact": {
            "$ref": "#/components/schemas/v1NVDV40Impact"
          },
          "threat_score": {
            "format": "float",
            "type": "number"
          },
          "threat_severity": {
            "$ref": "#/components/schemas/v1NVDSeverity"
          },
          "user_interaction": {
            "$ref": "#/components/schemas/v1NVDV40UserInteraction"
          },
          "value_density": {
            "$ref": "#/components/schemas/v1NVDV40ValueDensity"
          },
          "vector_string": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "vuln_availability_impact": {
            "$ref": "#/components/schemas/v1NVDV40Impact"
          },
          "vuln_confidentiality_impact": {
            "$ref": "#/components/schemas/v1NVDV40Impact"
          },
          "vuln_integrity_impact": {
            "$ref": "#/components/schemas/v1NVDV40Impact"
          },
          "vulnerability_response_effort": {
            "$ref": "#/components/schemas/v1NVDV40VulnerabilityResponseEffort"
          }
        },
        "required": [
          "version",
          "vector_string",
          "base_score",
          "base_severity"
        ],
        "type": "object"
      },
      "v1DependencyMetadata": {
        "description": "Information about the relationship between a root package version (importer)\nand one of its dependencies.\nDependencyMetadata objects are children of the root PackageVersion object and\nbelong to the same project and namespace as the root PackageVersion object.\nThey are connected to the importer project through\nspec.importer_data.project_uuid, and to the dependency project through\nspec.dependency_data.project_uuid.",
        "properties": {
          "context": {
            "$ref": "#/components/schemas/v1Context"
          },
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1DependencyMetadataSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of the object.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec",
          "context"
        ],
        "type": "object"
      },
      "v1DependencyMetadataPath": {
        "description": "List of nodes in a dependency path.",
        "properties": {
          "nodes": {
            "description": "List of nodes in a dependency path.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1DependencyMetadataSpec": {
        "description": "DependencyMetadata specific data.",
        "properties": {
          "dependency_data": {
            "$ref": "#/components/schemas/DependencyMetadataDependencyData"
          },
          "importer_data": {
            "$ref": "#/components/schemas/DependencyMetadataImporterData"
          }
        },
        "type": "object"
      },
      "v1DependencyScope": {
        "default": "DEPENDENCY_SCOPE_UNSPECIFIED",
        "description": " - DEPENDENCY_SCOPE_UNSPECIFIED: Dependency scope is undefined.\n - DEPENDENCY_SCOPE_TEST: Dependency is only used for testing.\n - DEPENDENCY_SCOPE_BUILD: Dependency is only used for building the package.\n - DEPENDENCY_SCOPE_NORMAL: Dependency is used in normal, non-test, code.",
        "enum": [
          "DEPENDENCY_SCOPE_UNSPECIFIED",
          "DEPENDENCY_SCOPE_TEST",
          "DEPENDENCY_SCOPE_BUILD",
          "DEPENDENCY_SCOPE_NORMAL"
        ],
        "type": "string"
      },
      "v1Digest": {
        "description": "Digest is a digest of a file/container image.",
        "properties": {
          "algorithm": {
            "$ref": "#/components/schemas/v1DigestType"
          },
          "value": {
            "description": "Digest value of the file.",
            "type": "string"
          }
        },
        "required": [
          "algorithm",
          "value"
        ],
        "type": "object"
      },
      "v1DigestType": {
        "default": "DIGEST_TYPE_UNSPECIFIED",
        "enum": [
          "DIGEST_TYPE_UNSPECIFIED",
          "DIGEST_TYPE_SHA1",
          "DIGEST_TYPE_SHA256",
          "DIGEST_TYPE_SHA512",
          "DIGEST_TYPE_MD5"
        ],
        "type": "string"
      },
      "v1DismissParams": {
        "description": "Metadata associated with a snooze or ignore request.",
        "properties": {
          "comments": {
            "description": "Comments for the snooze or ignore.",
            "type": "string"
          },
          "entry_id": {
            "description": "The ignore file entry id.",
            "type": "string"
          },
          "expiration_time": {
            "description": "Expiration time of the snooze or ignore.",
            "format": "date-time",
            "type": "string"
          },
          "expire_if_fix_available": {
            "description": "Set to true if the snooze or ignore should expire if a fix is available.",
            "type": "boolean"
          },
          "file_name": {
            "description": "Name of the file that was used to ignore the finding.",
            "type": "string"
          },
          "reason": {
            "$ref": "#/components/schemas/v1ExceptionReason"
          },
          "source": {
            "$ref": "#/components/schemas/v1DismissSource"
          },
          "update_time": {
            "description": "Timestamp of the last update.",
            "format": "date-time",
            "type": "string"
          },
          "updated_by": {
            "description": "Username of the user who last updated the snooze or ignore.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1DismissSource": {
        "default": "DISMISS_SOURCE_UNSPECIFIED",
        "description": "Which tool created a snooze or ignore, for tooling that maintains its own\ndismissals over time and must never clear one it did not create.\n\n - DISMISS_SOURCE_UNSPECIFIED: Created by a person, or by tooling that does not maintain what it writes.\n - DISMISS_SOURCE_CONTAINER_DIFF: Created by `endorctl container diff --snooze-baseline-findings`, or by the\nequivalent step of `endorctl container scan --diff`. Those commands clear\nthe dismissals carrying this source once the finding is no longer common\nwith the baseline, so no other writer may set it.",
        "enum": [
          "DISMISS_SOURCE_UNSPECIFIED",
          "DISMISS_SOURCE_CONTAINER_DIFF"
        ],
        "type": "string"
      },
      "v1DotNetToolChain": {
        "properties": {
          "additional_dotnet_versions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dotnet_installer_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "v1Ecosystem": {
        "default": "ECOSYSTEM_UNSPECIFIED",
        "description": " - ECOSYSTEM_GO: GoLang.\n - ECOSYSTEM_MAVEN: Maven.\n - ECOSYSTEM_PYPI: Python.\n - ECOSYSTEM_CARGO: Rust.\n - ECOSYSTEM_NPM: Javascript.\n - ECOSYSTEM_GEM: Ruby.\n - ECOSYSTEM_NUGET: Dotnet.\n - ECOSYSTEM_PACKAGIST: PHP.\n - ECOSYSTEM_SBOM: SBOMs.\n - ECOSYSTEM_RPM: RPM.\n - ECOSYSTEM_DEBIAN: Debian.\n - ECOSYSTEM_GITHUB_ACTION: GitHub Actions.\n - ECOSYSTEM_COCOAPOD: Cocoapods.\n - ECOSYSTEM_APK: APK (alpine et.al).\n - ECOSYSTEM_CONTAINER: Containers.\n - ECOSYSTEM_HUGGING_FACE: Hugging Face.\n - ECOSYSTEM_C: C/C++.\n - ECOSYSTEM_GIT: ecosystem GIT for GIT repository dependencies.\nThis can be used for package name of the resolved dependencies when a\ngiven repository has dependencies to other GIT repositories. Currently we\nuse this to represent vulnerabilities for the given GIT repository. ex:\ngit submodules, C/C++ dependencies.\n - ECOSYSTEM_AI_MODEL: AI models.\n - ECOSYSTEM_SWIFT: Ecosystem Swift consists of native Swift packages, which are defined\nusing the Package.swift manifest file and managed by the Swift Package\nManager. There is a separate ecosystem for Cocoapod packages called\nECOSYSTEM_COCOAPOD, which is an alternative package manager for Swift\npackages.\n - ECOSYSTEM_CONAN: Ecosystem Conan for C/C++ packages managed by the Conan 2.x package manager.\n - ECOSYSTEM_VSCODE: VS Code editor extensions, distributed via the Microsoft Visual Studio\nMarketplace.",
        "enum": [
          "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"
        ],
        "type": "string"
      },
      "v1EndorctlRC": {
        "default": "ENDORCTL_RC_UNSPECIFIED",
        "description": "Endorctl return codes.\n\n - ENDORCTL_RC_SUCCESS: Success (translates to exit code 0).\n - ENDORCTL_RC_ERROR: Unspecified error.\n - ENDORCTL_RC_INVALID_ARGS: Invalid input.\n - ENDORCTL_RC_ENDOR_AUTH_FAILURE: Endor API authentication failure.\n - ENDORCTL_RC_DOCTOR_FAILURE: Endor host-check failure.\n - ENDORCTL_RC_GITHUB_AUTH_FAILURE: GitHub authentication failure.\n - ENDORCTL_RC_ANALYTICS_ERROR: Error running analytics.\n - ENDORCTL_RC_FINDINGS_ERROR: Error generating findings.\n - ENDORCTL_RC_NOTIFICATIONS_ERROR: Error generating notifications.\n - ENDORCTL_RC_GITHUB_API_ERROR: Error calling GitHub API.\n - ENDORCTL_RC_GITHUB_PERMISSIONS_ERROR: Insufficient GitHub token permissions.\n - ENDORCTL_RC_GIT_ERROR: Error while performing a Git operation.\n - ENDORCTL_RC_DEPENDENCY_RESOLUTION_ERROR: Error during dependency resolution.\n - ENDORCTL_RC_DEPENDENCY_SCANNING_ERROR: Error during dependency scanning.\n - ENDORCTL_RC_CALL_GRAPH_ERROR: Error while generating call graphs.\n - ENDORCTL_RC_LINTER_ERROR: Error while running the linter scanner.\n - ENDORCTL_RC_BAD_POLICY_TYPE: A user defined policy has a policy type reserved for system policies.\n - ENDORCTL_RC_POLICY_ERROR: Error evaluating one or more policies.\n - ENDORCTL_RC_INTERNAL_ERROR: Internal error while running endorctl.\n - ENDORCTL_RC_DEADLINE_EXCEEDED: Deadline exceeded while running endorctl.\n - ENDORCTL_RC_NOT_FOUND: Requested entity was not found.\n - ENDORCTL_RC_ALREADY_EXISTS: Attempt to create an entity failed because it already exists.\n - ENDORCTL_RC_UNAUTHENTICATED: Unable to authenticate request.\n - ENDORCTL_RC_VULN_ERROR: Error related to vulnerability ingestion and processing.\n - ENDORCTL_RC_INITIALIZATION_ERROR: Error related to initializing the repository.\n - ENDORCTL_RC_HOST_CHECK_FAILURE: Endor host-check failure.\n - ENDORCTL_RC_SBOM_IMPORT_ERROR: Error importing an sbom.\n - ENDORCTL_RC_PRE_COMMIT_CHECK_FAILURE: A pre-commit check failed.\n - ENDORCTL_RC_GH_ACTION_WORKFLOW_SCAN_FAILURE: GitHub action workflow scan failed.\n - ENDORCTL_RC_FILE_ANALYTICS_ERROR: Error while reading files for analytics processing.\n - ENDORCTL_RC_SIGNATURE_VERIFICATION_FAILURE: Signature verification failure.\n - ENDORCTL_RC_LICENSE_ERROR: The requested operation requires additional licensing.\n - ENDORCTL_RC_HUGGING_FACE_ERROR: Error while running the huggingface scanner.\n - ENDORCTL_RC_SAST_ERROR: Error while running the SAST scanner.\n - ENDORCTL_RC_ARTIFACT_OPERATION_FAILURE: Artifact operation failure.\n - ENDORCTL_RC_SEGMENTATION_ERROR: Error during file segmentation.\n - ENDORCTL_RC_TOOLCHAIN_ERROR: Error generating toolchains.\n - ENDORCTL_RC_SANDBOX_ERROR: Error running endorctl sandbox.\n - ENDORCTL_RC_RULE_SET_ERROR: Error performing rule set operations.\n - ENDORCTL_RC_SECURITY_REVIEW_ERROR: Error while running the PR security review.\n - ENDORCTL_RC_CODE_API_ERROR: Error while running codeAPI.\n - ENDORCTL_RC_BASELINE_NOT_FOUND: Baseline is invalid or has not been scanned yet.\n - ENDORCTL_RC_SCAN_CANCELLED: Scan was cancelled.\n - ENDORCTL_RC_CLONE_ERROR: Error while cloning a git repository.\n - ENDORCTL_RC_POLICY_VIOLATION: One or more, enforced, admission policy violations detected.\n - ENDORCTL_RC_POLICY_WARNING: One ore more, unenforced, admission policy violations detected.\n - ENDORCTL_RC_PR_SECURITY_REVIEW_ERROR: Deprecated: Use ENDORCTL_RC_SECURITY_REVIEW_ERROR instead.\n - ENDORCTL_RC_EXPORTER_WARNING: Warning while running the exporter. This does not prevent the main scan\nfrom completing.\n - ENDORCTL_RC_CONTAINER_PROFILING_WARNING: Warning while profiling a container image.\n - ENDORCTL_RC_DEPENDENCY_SETUP_WARNING: Warning during dependency environment setup (e.g. truststore creation).\nThe scan continues with a fallback configuration but may encounter issues.",
        "enum": [
          "ENDORCTL_RC_UNSPECIFIED",
          "ENDORCTL_RC_SUCCESS",
          "ENDORCTL_RC_ERROR",
          "ENDORCTL_RC_INVALID_ARGS",
          "ENDORCTL_RC_ENDOR_AUTH_FAILURE",
          "ENDORCTL_RC_DOCTOR_FAILURE",
          "ENDORCTL_RC_GITHUB_AUTH_FAILURE",
          "ENDORCTL_RC_ANALYTICS_ERROR",
          "ENDORCTL_RC_FINDINGS_ERROR",
          "ENDORCTL_RC_NOTIFICATIONS_ERROR",
          "ENDORCTL_RC_GITHUB_API_ERROR",
          "ENDORCTL_RC_GITHUB_PERMISSIONS_ERROR",
          "ENDORCTL_RC_GIT_ERROR",
          "ENDORCTL_RC_DEPENDENCY_RESOLUTION_ERROR",
          "ENDORCTL_RC_DEPENDENCY_SCANNING_ERROR",
          "ENDORCTL_RC_CALL_GRAPH_ERROR",
          "ENDORCTL_RC_LINTER_ERROR",
          "ENDORCTL_RC_BAD_POLICY_TYPE",
          "ENDORCTL_RC_POLICY_ERROR",
          "ENDORCTL_RC_INTERNAL_ERROR",
          "ENDORCTL_RC_DEADLINE_EXCEEDED",
          "ENDORCTL_RC_NOT_FOUND",
          "ENDORCTL_RC_ALREADY_EXISTS",
          "ENDORCTL_RC_UNAUTHENTICATED",
          "ENDORCTL_RC_VULN_ERROR",
          "ENDORCTL_RC_INITIALIZATION_ERROR",
          "ENDORCTL_RC_HOST_CHECK_FAILURE",
          "ENDORCTL_RC_SBOM_IMPORT_ERROR",
          "ENDORCTL_RC_PRE_COMMIT_CHECK_FAILURE",
          "ENDORCTL_RC_GH_ACTION_WORKFLOW_SCAN_FAILURE",
          "ENDORCTL_RC_FILE_ANALYTICS_ERROR",
          "ENDORCTL_RC_SIGNATURE_VERIFICATION_FAILURE",
          "ENDORCTL_RC_LICENSE_ERROR",
          "ENDORCTL_RC_HUGGING_FACE_ERROR",
          "ENDORCTL_RC_SAST_ERROR",
          "ENDORCTL_RC_ARTIFACT_OPERATION_FAILURE",
          "ENDORCTL_RC_SEGMENTATION_ERROR",
          "ENDORCTL_RC_TOOLCHAIN_ERROR",
          "ENDORCTL_RC_SANDBOX_ERROR",
          "ENDORCTL_RC_RULE_SET_ERROR",
          "ENDORCTL_RC_SECURITY_REVIEW_ERROR",
          "ENDORCTL_RC_CODE_API_ERROR",
          "ENDORCTL_RC_BASELINE_NOT_FOUND",
          "ENDORCTL_RC_SCAN_CANCELLED",
          "ENDORCTL_RC_CLONE_ERROR",
          "ENDORCTL_RC_POLICY_VIOLATION",
          "ENDORCTL_RC_POLICY_WARNING",
          "ENDORCTL_RC_PR_SECURITY_REVIEW_ERROR",
          "ENDORCTL_RC_EXPORTER_WARNING",
          "ENDORCTL_RC_CONTAINER_PROFILING_WARNING",
          "ENDORCTL_RC_DEPENDENCY_SETUP_WARNING"
        ],
        "type": "string"
      },
      "v1Events": {
        "properties": {
          "event": {
            "items": {
              "type": "string"
            },
            "title": "List of user events",
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1ExceptionReason": {
        "default": "EXCEPTION_REASON_UNSPECIFIED",
        "description": "Reasons for dismissing a finding.\n\n - EXCEPTION_REASON_FALSE_POSITIVE: Tool is incorrect. This is not a real issue.\n - EXCEPTION_REASON_RISK_ACCEPTED: Risk acknowledged and accepted.\n - EXCEPTION_REASON_IN_TRIAGE: Issue is actively being triaged.\n - EXCEPTION_REASON_OTHER: Other reason. Use policy description or dismiss comments to elaborate.\n - EXCEPTION_REASON_RESOLVED: Issue has been resolved. For example, a secret is no longer valid.\n - EXCEPTION_REASON_PRESENT_IN_BASELINE: The finding is also present in the baseline scan this one was diffed\nagainst, so it is not newly introduced. Set only by container diff\ntooling, never by a human.",
        "enum": [
          "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"
        ],
        "type": "string"
      },
      "v1Exceptions": {
        "description": "Metadata added by the exception policy scanner.",
        "properties": {
          "policy_uuids": {
            "description": "List of exception policies triggered by this finding.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tags": {
            "description": "List of tags set by exception policies.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1ExportParameters": {
        "description": "Parameters to export a SBOM/VEX.",
        "properties": {
          "package_version_uuids": {
            "description": "List of package version UUIDs.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "project_name": {
            "description": "Name of the project.",
            "type": "string"
          },
          "project_uuid": {
            "description": "The UUID of the project.",
            "type": "string"
          },
          "repository_version": {
            "description": "Repository version is used to select the package versions for the export.\nThis is an optional field, If not set then the default repository version\nwill be used.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1ExportedSBOM": {
        "description": "This is the request to the SBOM export API.\nIt consists of the request resource kind.\nThe UUID is the UUID of the resource.\nThe output is the format to export the SBOM.\nThe SBOM kind is the kind of the SBOM requested by the user. Currently we support only CycloneDx.\nThe meta parent_kind can take one of two values - PackageVersion or RepositoryVersion.\nThe Meta parent_uuid corresponds to the parent UUID of the parent kind.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1ExportedSBOMSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of the SBOM.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta"
        ],
        "type": "object"
      },
      "v1ExportedSBOMComponentType": {
        "default": "COMPONENT_TYPE_UNSPECIFIED",
        "description": "The kind of component for which we are creating an SBOM.\nThis is a mandatory field.",
        "enum": [
          "COMPONENT_TYPE_UNSPECIFIED",
          "COMPONENT_TYPE_LIBRARY",
          "COMPONENT_TYPE_APPLICATION"
        ],
        "type": "string"
      },
      "v1ExportedSBOMFormat": {
        "default": "FORMAT_UNSPECIFIED",
        "description": "Specifies the output of SBOM. (For example, JSON and XML).\n\n - FORMAT_JSON: SBOM of JSON format output.\n - FORMAT_XML: SBOM of XML format output.\n - FORMAT_TAG_VALUE: SBOM of Tag Value format output.",
        "enum": [
          "FORMAT_UNSPECIFIED",
          "FORMAT_JSON",
          "FORMAT_XML",
          "FORMAT_TAG_VALUE"
        ],
        "type": "string"
      },
      "v1ExportedSBOMSpec": {
        "description": "The internal specification of the object.",
        "properties": {
          "component_type": {
            "$ref": "#/components/schemas/v1ExportedSBOMComponentType"
          },
          "data": {
            "description": "The output of the SBOM, which is a string type.\nFor whichever format we generate the SBOM, the output will be a string only response.",
            "readOnly": true,
            "type": "string"
          },
          "export_parameters": {
            "$ref": "#/components/schemas/v1ExportParameters"
          },
          "format": {
            "$ref": "#/components/schemas/v1ExportedSBOMFormat"
          },
          "hide_private_components": {
            "description": "Whether to hide internal packages or not.",
            "type": "boolean"
          },
          "include_test_dependencies": {
            "description": "Whether to include test, dev, build, and optional dependencies in the SBOM export.\nWhen false (the default), non-production dependencies — and any transitive\ndependencies reachable only through them — are excluded.",
            "type": "boolean"
          },
          "kind": {
            "$ref": "#/components/schemas/v1SBOMKind"
          }
        },
        "required": [
          "component_type"
        ],
        "type": "object"
      },
      "v1FileType": {
        "default": "FILE_TYPE_UNSPECIFIED",
        "enum": [
          "FILE_TYPE_UNSPECIFIED",
          "FILE_TYPE_FILE",
          "FILE_TYPE_SYMLINK"
        ],
        "type": "string"
      },
      "v1Finding": {
        "description": "A finding contains details of a problem that needs to be fixed.\nThe finding applies to the parent object, which can be one of:\nRepository, RepositoryVersion, or PackageVersion.\nFinding objects are connected to the project via spec.project_uuid.",
        "properties": {
          "context": {
            "$ref": "#/components/schemas/v1Context"
          },
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1FindingSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of the object.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec",
          "context"
        ],
        "type": "object"
      },
      "v1FindingCategory": {
        "default": "FINDING_CATEGORY_UNSPECIFIED",
        "description": "Finding categories loosely correspond to use cases.\n\n - FINDING_CATEGORY_VULNERABILITY: Vulnerability.\n - FINDING_CATEGORY_SUPPLY_CHAIN: Supply chain specific problem (malicious packages, typosquats).\n - FINDING_CATEGORY_LICENSE_RISK: License issue.\n - FINDING_CATEGORY_SCPM: Security posture management.\n - FINDING_CATEGORY_SECURITY: Generic security issue.\n - FINDING_CATEGORY_OPERATIONAL: Generic operational issue.\n - FINDING_CATEGORY_SECRETS: Exposed secret.\n - FINDING_CATEGORY_MALWARE: Malware.\n - FINDING_CATEGORY_CICD: CI/CD pipeline issue.\n - FINDING_CATEGORY_TOOLS: Tooling issue.\n - FINDING_CATEGORY_GHACTIONS: Finding applies to a GitHub action dependency.\n - FINDING_CATEGORY_CONTAINER: Finding applies to a container image.\n - FINDING_CATEGORY_SAST: SAST.\n - FINDING_CATEGORY_AI_MODELS: AI Models.\n - FINDING_CATEGORY_SECURITY_REVIEW: Security review.\n - FINDING_CATEGORY_SCA: Software Composition Analysis issue.",
        "enum": [
          "FINDING_CATEGORY_UNSPECIFIED",
          "FINDING_CATEGORY_VULNERABILITY",
          "FINDING_CATEGORY_SUPPLY_CHAIN",
          "FINDING_CATEGORY_LICENSE_RISK",
          "FINDING_CATEGORY_SCPM",
          "FINDING_CATEGORY_SECURITY",
          "FINDING_CATEGORY_OPERATIONAL",
          "FINDING_CATEGORY_SECRETS",
          "FINDING_CATEGORY_MALWARE",
          "FINDING_CATEGORY_CICD",
          "FINDING_CATEGORY_TOOLS",
          "FINDING_CATEGORY_GHACTIONS",
          "FINDING_CATEGORY_CONTAINER",
          "FINDING_CATEGORY_SAST",
          "FINDING_CATEGORY_AI_MODELS",
          "FINDING_CATEGORY_SECURITY_REVIEW",
          "FINDING_CATEGORY_SCA"
        ],
        "type": "string"
      },
      "v1FindingClassification": {
        "default": "FINDING_CLASSIFICATION_UNSPECIFIED",
        "description": "Classification of the finding type. Extensible for future categories.\n\n - FINDING_CLASSIFICATION_SECURITY_VULNERABILITY: Security vulnerability (e.g. SQL injection, XSS, hardcoded creds).\n - FINDING_CLASSIFICATION_LOGICAL_BUG: Logical bug (e.g. null pointer, resource leak, race condition).",
        "enum": [
          "FINDING_CLASSIFICATION_UNSPECIFIED",
          "FINDING_CLASSIFICATION_SECURITY_VULNERABILITY",
          "FINDING_CLASSIFICATION_LOGICAL_BUG"
        ],
        "type": "string"
      },
      "v1FindingContainerData": {
        "properties": {
          "base_image": {
            "description": "Base image of the container image where the target dependency was\nfound.",
            "type": "string"
          },
          "has_base_layer": {
            "description": "Set to true if the target dependency was found in the base layer of the\ncontainer image.",
            "type": "boolean"
          },
          "layer_digests": {
            "description": "List of layer digests for the container image where the target\ndependency was found.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1FindingFixingPatch": {
        "description": "FindingFixingPatch that can fix the finding.",
        "properties": {
          "endor_patch_available": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "v1FindingFixingUpgrades": {
        "description": "Upgrades that can fix the finding.",
        "properties": {
          "upgrade_list": {
            "description": "List of upgrades that can fix the finding.",
            "items": {
              "$ref": "#/components/schemas/FindingFixingUpgradesUpgradeInfo"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1FindingMetadata": {
        "description": "Metadata associated with a finding.",
        "properties": {
          "ai_sast_data": {
            "$ref": "#/components/schemas/AIResultSAST"
          },
          "ci_blocking_policy_info": {
            "$ref": "#/components/schemas/v1FindingPolicyInfo"
          },
          "container_data": {
            "$ref": "#/components/schemas/v1FindingContainerData"
          },
          "custom": {
            "description": "Custom finding metadata."
          },
          "cvss_version": {
            "$ref": "#/components/schemas/SpecCVSSVersion"
          },
          "dependency_package_version_metadata": {
            "$ref": "#/components/schemas/v1PackageVersionMetadata"
          },
          "dependency_score_card": {
            "$ref": "#/components/schemas/v1ScoreCard"
          },
          "dependency_score_factor_list": {
            "$ref": "#/components/schemas/v1ScoreFactorList"
          },
          "malware": {
            "$ref": "#/components/schemas/v1Malware"
          },
          "root_package_resolved_dependencies": {
            "$ref": "#/components/schemas/v1Bom"
          },
          "root_package_score_card": {
            "$ref": "#/components/schemas/v1ScoreCard"
          },
          "root_package_score_factor_list": {
            "$ref": "#/components/schemas/v1ScoreFactorList"
          },
          "root_package_version_metadata": {
            "$ref": "#/components/schemas/v1PackageVersionMetadata"
          },
          "sast_data": {
            "$ref": "#/components/schemas/v1SastData"
          },
          "security_review_data": {
            "$ref": "#/components/schemas/v1SecurityReviewFindingData"
          },
          "source_policy_info": {
            "$ref": "#/components/schemas/v1FindingPolicyInfo"
          },
          "typosquatted_dependency_version_metadata": {
            "$ref": "#/components/schemas/v1PackageVersionMetadata"
          },
          "vulnerability": {
            "$ref": "#/components/schemas/v1Vuln"
          }
        },
        "type": "object"
      },
      "v1FindingPolicyInfo": {
        "description": "Details about the policy that created the finding.",
        "properties": {
          "description": {
            "description": "Policy description.",
            "type": "string"
          },
          "finding_name": {
            "description": "Finding name.",
            "type": "string"
          },
          "name": {
            "description": "Policy name.",
            "type": "string"
          },
          "results": {
            "description": "List of policy matches.",
            "items": {
              "$ref": "#/components/schemas/FindingPolicyInfoPolicyResult"
            },
            "type": "array"
          },
          "tags": {
            "description": "Policy meta tags.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "total_num_results": {
            "description": "The total number of results matched by the policy. This number may be greater\nthan the list of policy matches in the results field, which is truncated if\nthere are more than 5 results.",
            "format": "int32",
            "type": "integer"
          },
          "uuid": {
            "description": "Policy UUID.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1FindingRemediation": {
        "default": "FINDING_REMEDIATION_UNSPECIFIED",
        "description": "Recommended action to resolve the finding.\n\n - FINDING_REMEDIATION_UPGRADE: Upgrade to a later version.\n - FINDING_REMEDIATION_DOWNGRADE: Downgrade to an older version.\n - FINDING_REMEDIATION_REPLACE: Replace dependency with another package.\n - FINDING_REMEDIATION_REMOVE: Remove unused dependency.\n - FINDING_REMEDIATION_VENDOR: Vendor a dependency.\n - FINDING_REMEDIATION_IMPROVE: Make changes to improve a dependency.\n - FINDING_REMEDIATION_REIMPLEMENT: Reimplement a dependency locally.\n - FINDING_REMEDIATION_REVIEW: Review, no remediation to suggest\n - FINDING_REMEDIATION_NOTIFICATION: Notification, there may not be any remediation\n - FINDING_REMEDIATION_PIN: Pin dependency to one of the recommended versions",
        "enum": [
          "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"
        ],
        "type": "string"
      },
      "v1FindingSpec": {
        "description": "Finding specific data.",
        "properties": {
          "actions": {
            "$ref": "#/components/schemas/v1Actions"
          },
          "approximation": {
            "description": "True if this finding is for an approximate dependency\nbased on the unresolved package dependencies.",
            "type": "boolean"
          },
          "call_graph_analysis_type": {
            "$ref": "#/components/schemas/v1CallGraphAnalysisType"
          },
          "code_owners": {
            "$ref": "#/components/schemas/v1CodeOwnerData"
          },
          "dependency_file_paths": {
            "description": "List of relative paths to the dependency files used to create the bom, if\napplicable. This field is optional and is only set when the source code\nof the package version is known. For example, for Golang it contains\ngo.mod and go.sum.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "dismiss": {
            "description": "Set to true to exclude finding from action policies\n(a.k.a. admission and notification policies).\nFindings can be dismissed in bulk by exception policies\nand/or individually via the snooze parameters or\nthe ignore file.",
            "type": "boolean"
          },
          "ecosystem": {
            "$ref": "#/components/schemas/v1Ecosystem"
          },
          "exceptions": {
            "$ref": "#/components/schemas/v1Exceptions"
          },
          "explanation": {
            "description": "Information about why this finding is considered noteworthy.",
            "type": "string"
          },
          "extra_key": {
            "description": "Additional information used to create a unique finding.\n\nIn some cases we want to create multiple findings for the same\ncombination of parent_uuid, meta.name, and target_uuid, for example when\nthere are multiple vulnerabilities affecting the same dependency. By\nsetting different values in this field, we are able to create a unique\nfinding per combination of parent_uuid, meta.name, target_uuid, and\nextra_key.",
            "type": "string"
          },
          "finding_categories": {
            "description": "List of categories that capture the use case the finding fits in.",
            "items": {
              "$ref": "#/components/schemas/v1FindingCategory"
            },
            "type": "array"
          },
          "finding_metadata": {
            "$ref": "#/components/schemas/v1FindingMetadata"
          },
          "finding_tags": {
            "description": "List of tags, or attributes, that describe the scope of the finding\nand can be used to filter findings.",
            "items": {
              "$ref": "#/components/schemas/v1FindingTags"
            },
            "type": "array"
          },
          "fixing_patch": {
            "$ref": "#/components/schemas/v1FindingFixingPatch"
          },
          "fixing_upgrades": {
            "$ref": "#/components/schemas/v1FindingFixingUpgrades"
          },
          "ignore": {
            "$ref": "#/components/schemas/v1DismissParams"
          },
          "last_processed": {
            "description": "Last time the finding was processed.",
            "format": "date-time",
            "type": "string"
          },
          "latest_version": {
            "description": "Latest version of dependency, if available.",
            "type": "string"
          },
          "level": {
            "$ref": "#/components/schemas/SpecFindingLevel"
          },
          "location_urls": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The URLs that correspond to the paths contained in dependency_file_paths.",
            "type": "object"
          },
          "method": {
            "$ref": "#/components/schemas/v1SystemEvaluationMethodDefinition"
          },
          "project_uuid": {
            "description": "The UUID of the project to which this finding belongs.",
            "type": "string"
          },
          "proposed_version": {
            "description": "Recommended version of dependency if available.",
            "type": "string"
          },
          "reachable_paths": {
            "description": "Function paths to the vulnerable method.\nOnly applies to vulnerability findings.",
            "items": {
              "$ref": "#/components/schemas/FindingSpecPath"
            },
            "type": "array"
          },
          "relationship": {
            "description": "String describing the relationship to dependency,\nFor example, \"Foo is a direct dependency of bar.\", if applicable.",
            "type": "string"
          },
          "remediation": {
            "description": "String describing the recommended remediation to fix this finding.",
            "type": "string"
          },
          "remediation_action": {
            "$ref": "#/components/schemas/v1FindingRemediation"
          },
          "snooze": {
            "$ref": "#/components/schemas/v1DismissParams"
          },
          "source_code_version": {
            "$ref": "#/components/schemas/v1Version"
          },
          "summary": {
            "description": "A more detailed description of the finding.",
            "type": "string"
          },
          "target_dependency_name": {
            "description": "Dependency package name, if applicable.\nThis is just the name (i.e. it does not include the ecosystem or the\nversion).",
            "type": "string"
          },
          "target_dependency_native_scope": {
            "description": "Un-normalized native dependency scope from the package manager\n(e.g. Maven \"provided\"). Empty if none.",
            "type": "string"
          },
          "target_dependency_package_name": {
            "description": "Fully qualified name of the dependency, e.g. eco://package@version, if\napplicable.",
            "type": "string"
          },
          "target_dependency_version": {
            "description": "Dependency version, if applicable.\nThis is just the version (i.e. it does not include the ecosystem or the\npackage name).",
            "type": "string"
          },
          "target_uuid": {
            "description": "The UUID of the DependencyMetadata object for the dependency, if\napplicable.",
            "type": "string"
          }
        },
        "required": [
          "project_uuid",
          "last_processed",
          "level",
          "summary",
          "finding_tags",
          "target_uuid",
          "extra_key"
        ],
        "type": "object"
      },
      "v1FindingTags": {
        "default": "FINDING_TAGS_UNSPECIFIED",
        "description": "Finding attributes.\n\n - FINDING_TAGS_DIRECT: Finding applies to a direct dependency.\n - FINDING_TAGS_TRANSITIVE: Finding applies to a transitive (indirect) dependency.\n - FINDING_TAGS_PROJECT_INTERNAL: Finding applies to a dependency that belongs to the same project.\n - FINDING_TAGS_NAMESPACE_INTERNAL: Finding applies to a dependency that belongs to the same namespace.\n - FINDING_TAGS_REACHABLE_DEPENDENCY: Finding applies to a reachable dependency.\n - FINDING_TAGS_UNREACHABLE_DEPENDENCY: Finding applies to an unreachable dependency.\n - FINDING_TAGS_POTENTIALLY_REACHABLE_DEPENDENCY: Finding applies to a potentially reachable dependency.\n - FINDING_TAGS_REACHABLE_FUNCTION: Finding applies to a reachable function.\n - FINDING_TAGS_UNREACHABLE_FUNCTION: Finding applies to an unreachable function.\n - FINDING_TAGS_POTENTIALLY_REACHABLE_FUNCTION: Finding applies to a potentially reachable function.\n - FINDING_TAGS_FIXABLE: Deprecated.\n - FINDING_TAGS_UNFIXABLE: Finding is unfixable.\n - FINDING_TAGS_PRODUCTION: Deprecated.\n - FINDING_TAGS_TEST: Finding applies to a dependency not in production code.\n - FINDING_TAGS_NORMAL: Finding applies to a normal, non-test, dependency.\n - FINDING_TAGS_FIX_AVAILABLE: There is a fix available for the CVE reported in this finding.\n - FINDING_TAGS_SELF: Finding applies only to the analyzed package version, there is no\ndependency involved.\n - FINDING_TAGS_POLICY: Deprecated.\n - FINDING_TAGS_CI_BLOCKER: Finding caused a CI failure.\n - FINDING_TAGS_VALID_SECRET: Finding applies to a valid secret.\n - FINDING_TAGS_INVALID_SECRET: Finding applies to an invalid secret.\n - FINDING_TAGS_PATH_EXTERNAL: Finding applies to a transitive dependency that can only be reached via\nexternal, non-OSS, project paths.\n - FINDING_TAGS_MALWARE: Finding applies to malicious package.\n - FINDING_TAGS_UNDER_REVIEW: Finding applies to suspicious package under review.\n - FINDING_TAGS_PHANTOM: Finding applies to a phantom dependency.\n - FINDING_TAGS_EXCEPTION: Finding is exempt from action policies.\n - FINDING_TAGS_CI_WARNING: Finding caused a CI warning.\n - FINDING_TAGS_NOTIFICATION: Finding triggered a notification.\n - FINDING_TAGS_EXPLOITED: This vulnerability is known to be exploited.\n - FINDING_TAGS_DISPUTED: This vulnerability has been marked as 'disputed'.\n - FINDING_TAGS_WITHDRAWN: This vulnerability has been marked as 'withdrawn'.\n - FINDING_TAGS_FALSE_POSITIVE: This finding has been analyzed to be a false positive.\n - FINDING_TAGS_TRUE_POSITIVE: This finding has been analyzed to be a true positive.\n - FINDING_TAGS_SNOOZED: Finding has been snoozed.\n - FINDING_TAGS_AI: This finding was generated using AI.\n - FINDING_TAGS_IGNORED: Finding has been ignored via the ignore file.\n - FINDING_TAGS_SEGMENT_MATCH: Finding applies to a dependency discovered via segment-matching.\n - FINDING_TAGS_REACHABLE_BY_INCLUSION: The vulnerability is assumed reachable because the package is included;\nno call path to a vulnerable function exists.\n - FINDING_TAGS_POTENTIALLY_VALID_SECRET: Finding applies to a secret that has not been validated.",
        "enum": [
          "FINDING_TAGS_UNSPECIFIED",
          "FINDING_TAGS_DIRECT",
          "FINDING_TAGS_TRANSITIVE",
          "FINDING_TAGS_PROJECT_INTERNAL",
          "FINDING_TAGS_NAMESPACE_INTERNAL",
          "FINDING_TAGS_REACHABLE_DEPENDENCY",
          "FINDING_TAGS_UNREACHABLE_DEPENDENCY",
          "FINDING_TAGS_POTENTIALLY_REACHABLE_DEPENDENCY",
          "FINDING_TAGS_REACHABLE_FUNCTION",
          "FINDING_TAGS_UNREACHABLE_FUNCTION",
          "FINDING_TAGS_POTENTIALLY_REACHABLE_FUNCTION",
          "FINDING_TAGS_FIXABLE",
          "FINDING_TAGS_UNFIXABLE",
          "FINDING_TAGS_PRODUCTION",
          "FINDING_TAGS_TEST",
          "FINDING_TAGS_NORMAL",
          "FINDING_TAGS_FIX_AVAILABLE",
          "FINDING_TAGS_SELF",
          "FINDING_TAGS_POLICY",
          "FINDING_TAGS_CI_BLOCKER",
          "FINDING_TAGS_VALID_SECRET",
          "FINDING_TAGS_INVALID_SECRET",
          "FINDING_TAGS_PATH_EXTERNAL",
          "FINDING_TAGS_MALWARE",
          "FINDING_TAGS_UNDER_REVIEW",
          "FINDING_TAGS_PHANTOM",
          "FINDING_TAGS_EXCEPTION",
          "FINDING_TAGS_CI_WARNING",
          "FINDING_TAGS_NOTIFICATION",
          "FINDING_TAGS_EXPLOITED",
          "FINDING_TAGS_DISPUTED",
          "FINDING_TAGS_WITHDRAWN",
          "FINDING_TAGS_FALSE_POSITIVE",
          "FINDING_TAGS_TRUE_POSITIVE",
          "FINDING_TAGS_SNOOZED",
          "FINDING_TAGS_AI",
          "FINDING_TAGS_IGNORED",
          "FINDING_TAGS_SEGMENT_MATCH",
          "FINDING_TAGS_REACHABLE_BY_INCLUSION",
          "FINDING_TAGS_POTENTIALLY_VALID_SECRET"
        ],
        "type": "string"
      },
      "v1GemSpec": {
        "description": "GemSpec represents a configuration for the Ruby gems package manager.",
        "properties": {
          "basic_auth": {
            "$ref": "#/components/schemas/endorv1BasicAuth"
          },
          "password": {
            "description": "An encrypted password that must be provided by the repository owner.\nSuperseded by `auth`; kept only for migration, removed in a later CR.",
            "type": "string"
          },
          "priority": {
            "description": "The priority of the Ruby gems package manager.\nPriorities are relative. If multiple package managers\nhave the same priority, the order between them can be random.\nLower number means higher priority.",
            "format": "int32",
            "type": "integer"
          },
          "token_auth": {
            "$ref": "#/components/schemas/v1TokenAuth"
          },
          "url": {
            "description": "The URL of the registry that the Ruby gems package manager must use.",
            "type": "string"
          },
          "user": {
            "description": "The user name to use to access this repository.\nSuperseded by `auth`; kept only for migration, removed in a later CR.",
            "type": "string"
          }
        },
        "required": [
          "priority"
        ],
        "type": "object"
      },
      "v1GitSpec": {
        "description": "Git repository project configuration.\n\nFields of this object might differ from the Git host.",
        "properties": {
          "external_installation_id": {
            "description": "Endor Labs GitHub app installation ID of this project.\nOptional and only available if the project is created through an\ninstallation.",
            "format": "int64",
            "type": "string"
          },
          "full_name": {
            "description": "Represents the Git namespace and its associated hierarchy.\n\nThe format is \"namespace/name\", comprising the organization name and\nrepository name.\n\nFor example, yarpc/yarpc-go\n\nGitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .full_name",
            "readOnly": true,
            "type": "string"
          },
          "git_clone_url": {
            "description": "The Git clone URL.\nFor example, git://github.com/yarpc/yarpc-go.git.\n\nThe URL is stored as lower case letters to normalize searches.",
            "readOnly": true,
            "type": "string"
          },
          "http_clone_url": {
            "description": "The HTTP clone URL.\n\nThe following examples show valid URLs.\n\nhttps://github.com/yarpc/yarpc-go.git\n\nhttp://github.com/yarpc/yarpc-go.git\n\nhttps://my.github.com/a/b.git\n\nhttps://www.gitlab.com/a/b/c.git\n\nhttps://github.com/eclipse-vertx/vert.x.git\n\nhttps://github.com/jboss/jboss-ejb-api_spec.git\n\nThe URL is stored as lower case letters to normalize searches.",
            "type": "string"
          },
          "invalid_installation": {
            "description": "Indicates that Endor Labs installation no longer exists\nfor this project and was potentially deleted. Endor Labs can no longer\nrefresh or rescan this project.",
            "type": "boolean"
          },
          "organization": {
            "description": "The organization where the repository is located.\n\nFor example, yarpc\n\nGitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq\n.organization.login",
            "readOnly": true,
            "type": "string"
          },
          "path": {
            "description": "The source control repository in the project without the organization.\n\nFor example, yarpc-go\n\nGitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .name",
            "readOnly": true,
            "type": "string"
          },
          "web_url": {
            "description": "The web URL to view the repository.\n\nFor example, https://github.com/yarpc/yarpc-go\n\nGitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .html_url\n\nThe URL is stored as lower case letters to normalize searches.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "http_clone_url"
        ],
        "type": "object"
      },
      "v1GolangToolChain": {
        "properties": {
          "version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "v1GradleSpec": {
        "description": "GradleSpec represents properties that need to be set for Gradle projects.",
        "properties": {
          "mtls": {
            "$ref": "#/components/schemas/v1MTLSAuth"
          },
          "property_key_name": {
            "description": "The key name for Gradle properties.",
            "type": "string"
          },
          "property_key_value": {
            "description": "The key value for Gradle properties.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1GroupAggregationValueResponse": {
        "description": "GroupAggregationValueResponse returns the value of the aggregation if\nrequested.",
        "properties": {
          "value": {
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "v1GroupResponse": {
        "description": "Response to a list group request.",
        "properties": {
          "groups": {
            "additionalProperties": {
              "$ref": "#/components/schemas/GroupResponseGroupData"
            },
            "description": "Map indexed by values of the fields specified in aggregation_paths,\nfor example, {\"[{\"key\":\"meta.kind\",\"value\":\"Project\"}]\": {\n\"aggregation_count\": { \"count\": 1649 } } }.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "v1IOCType": {
        "default": "IOC_TYPE_UNSPECIFIED",
        "description": "IOCType classifies the type of Indicator of Compromise.",
        "enum": [
          "IOC_TYPE_UNSPECIFIED",
          "IOC_TYPE_URL",
          "IOC_TYPE_IP",
          "IOC_TYPE_DOMAIN",
          "IOC_TYPE_FILENAME",
          "IOC_TYPE_FILEPATH",
          "IOC_TYPE_DIGEST_SHA1",
          "IOC_TYPE_DIGEST_SHA256",
          "IOC_TYPE_DIGEST_SHA512",
          "IOC_TYPE_DIGEST_MD5",
          "IOC_TYPE_WALLET_ADDRESS",
          "IOC_TYPE_REGISTRY_ACCOUNT_NAME",
          "IOC_TYPE_REGISTRY_ACCOUNT_EMAIL",
          "IOC_TYPE_DEPENDENCY"
        ],
        "type": "string"
      },
      "v1ImportedSBOM": {
        "description": "ImportedSBOM represents an SBOM that has been imported.",
        "properties": {
          "context": {
            "$ref": "#/components/schemas/v1Context"
          },
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "processing_status": {
            "$ref": "#/components/schemas/v1ProcessingStatus"
          },
          "spec": {
            "$ref": "#/components/schemas/v1ImportedSBOMSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "readOnly": true,
            "title": "The UUID of the SBOM",
            "type": "string"
          }
        },
        "required": [
          "meta",
          "context"
        ],
        "type": "object"
      },
      "v1ImportedSBOMSpec": {
        "description": "The internal specification of the object.",
        "properties": {
          "cyclone_dx": {
            "description": "CycloneDX is the cyclonedx bom struct serialized to a string.",
            "type": "string"
          },
          "cyclone_dx_bytes": {
            "description": "CycloneDX bom struct encoded in zstd bytes.",
            "format": "byte",
            "type": "string"
          },
          "identifier": {
            "description": "The unique identifer of the component of a SBOM.\nFor example, a CycloneDX SBOM will have metadata.component.bom-ref as the identifier of the main component.",
            "readOnly": true,
            "type": "string"
          },
          "kind": {
            "$ref": "#/components/schemas/v1SBOMKind"
          },
          "main_component_purl": {
            "description": "The PURL of the main component of a SBOM.",
            "readOnly": true,
            "type": "string"
          },
          "spdx": {
            "description": "SPDX is the spdx bom struct serialized to a string.",
            "type": "string"
          },
          "spdx_bytes": {
            "description": "SPDX bom struct encoded in zstd bytes.",
            "format": "byte",
            "type": "string"
          },
          "supplier_name": {
            "description": "The suplier name of the imported SBOM.",
            "readOnly": true,
            "type": "string"
          },
          "version": {
            "description": "The version of the imported SBOM.",
            "format": "int32",
            "readOnly": true,
            "type": "integer"
          }
        },
        "required": [
          "kind"
        ],
        "type": "object"
      },
      "v1IndexData": {
        "description": "IndexData is used to index the resource for search. It's an internal\nobject.",
        "properties": {
          "data": {
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "search_score": {
            "description": "search_score is the score of the resource for search. Internal use only.",
            "format": "float",
            "readOnly": true,
            "type": "number"
          },
          "tenant": {
            "readOnly": true,
            "type": "string"
          },
          "will_be_deleted_at": {
            "description": "Time that the resource will be deleted.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1JavaScriptToolChain": {
        "properties": {
          "nodejs_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "npm_packages": {
            "additionalProperties": {
              "$ref": "#/components/schemas/v1ToolChainVersion"
            },
            "type": "object"
          },
          "pnpm_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "rush_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "yarn_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          }
        },
        "required": [
          "nodejs_version"
        ],
        "type": "object"
      },
      "v1JavaToolChain": {
        "properties": {
          "gradle_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "maven_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "v1LLMContext": {
        "properties": {
          "structured_content": {
            "$ref": "#/components/schemas/LLMContextStructuredContent"
          },
          "unstructured_content": {
            "description": "The unstructured content of the LLM context.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1Language": {
        "default": "LANGUAGE_UNSPECIFIED",
        "description": " - LANGUAGE_GOSU: Gosu, a JVM language used by Guidewire applications.",
        "enum": [
          "LANGUAGE_UNSPECIFIED",
          "LANGUAGE_GO",
          "LANGUAGE_JAVA",
          "LANGUAGE_SCALA",
          "LANGUAGE_PYTHON",
          "LANGUAGE_RUST",
          "LANGUAGE_JS",
          "LANGUAGE_RUBY",
          "LANGUAGE_CSHARP",
          "LANGUAGE_PHP",
          "LANGUAGE_TYPESCRIPT",
          "LANGUAGE_KOTLIN",
          "LANGUAGE_SWIFT",
          "LANGUAGE_OBJECTIVEC",
          "LANGUAGE_C",
          "LANGUAGE_CPP",
          "LANGUAGE_SWIFTURL",
          "LANGUAGE_CONAN",
          "LANGUAGE_GOSU"
        ],
        "type": "string"
      },
      "v1LicenseDependencyMetadata": {
        "description": "LicenseDependencyMetadata contains license information for a dependency.",
        "properties": {
          "category": {
            "description": "License category (e.g. \"Restricted\").",
            "type": "string"
          },
          "spdx_id": {
            "description": "SPDX license identifier (e.g. \"Apache-2.0\").",
            "type": "string"
          },
          "type": {
            "description": "License classification (based on licenseclassifier by Google).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1LicenseInfo": {
        "description": "LicenseInfo contains information for a license.",
        "properties": {
          "file": {
            "description": "The name of the file where the license was found.",
            "type": "string"
          },
          "file_location": {
            "description": "The line in the file where the license text begins.",
            "format": "int32",
            "type": "integer"
          },
          "mapping_info": {
            "$ref": "#/components/schemas/v1LicenseMappingInfo"
          },
          "matched_text": {
            "description": "The license text that was matched.",
            "type": "string"
          },
          "name": {
            "description": "Raw license description as found, for example in package managers.\nIt is free form text that may not contain a valid SPDX ID.",
            "type": "string"
          },
          "spdxid": {
            "description": "Normalized SPDX id if known.",
            "type": "string"
          },
          "type": {
            "description": "License classification (based on licenseclassifier by Google).",
            "type": "string"
          },
          "url": {
            "description": "The URL that points to the license description.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "v1LicenseMappingInfo": {
        "default": "LICENSE_MAPPING_INFO_UNSPECIFIED",
        "description": "LicenseMappingInfo contains additional information\nthat we determine when we attempt to match a license string\nto a known SPDX id.\n\n - LICENSE_MAPPING_INFO_NOT_OSS: This does not look to like an OSS license.\n - LICENSE_MAPPING_INFO_IN_CODE: License information is to be found in the code.\n - LICENSE_MAPPING_INFO_UNKNOWN: Cannot determine anything about the license.\n - LICENSE_MAPPING_INFO_NOT_INCOMPLETE: There is some license information, but is not detailed enough.\n - LICENSE_MAPPING_INFO_PRIVATE: Appears to be a private package.\n - LICENSE_MAPPING_INFO_EXACT: An exact match to a SPDX id.\n - LICENSE_MAPPING_INFO_UNLICENSED: Seems to be explicitly without license.",
        "enum": [
          "LICENSE_MAPPING_INFO_UNSPECIFIED",
          "LICENSE_MAPPING_INFO_NOT_OSS",
          "LICENSE_MAPPING_INFO_IN_CODE",
          "LICENSE_MAPPING_INFO_UNKNOWN",
          "LICENSE_MAPPING_INFO_NOT_INCOMPLETE",
          "LICENSE_MAPPING_INFO_PRIVATE",
          "LICENSE_MAPPING_INFO_EXACT",
          "LICENSE_MAPPING_INFO_UNLICENSED"
        ],
        "type": "string"
      },
      "v1LinterCorrectnessAnalysis": {
        "description": "LinterCorrectnessAnalysis represents an analysis of a linter result.",
        "properties": {
          "analysis_summary": {
            "description": "Analysis summary, providing an explanation of the linter result and classification.",
            "type": "string"
          },
          "analyzer": {
            "$ref": "#/components/schemas/v1CorrectnessAnalyzer"
          },
          "code_fixes": {
            "description": "Code fixes are potential fixes to the identified issue.",
            "items": {
              "$ref": "#/components/schemas/LinterCorrectnessAnalysisCodeFix"
            },
            "type": "array"
          },
          "code_references": {
            "description": "Textual description of line references/ fields/variables , etc for the linter result.",
            "type": "string"
          },
          "confidence_level": {
            "$ref": "#/components/schemas/v1AIMetaConfidenceLevel"
          },
          "content_hash": {
            "description": "sha256 over the source spans (finding location + taint dataflow) this analysis\nwas computed against; a mismatch on rescan invalidates the cached verdict and\nforces re-analysis of the result.",
            "type": "string"
          },
          "correctness": {
            "$ref": "#/components/schemas/v1Correctness"
          },
          "data_flow": {
            "description": "Textual Description of the source to sink data flow analysis for the linter result.",
            "items": {
              "$ref": "#/components/schemas/LinterCorrectnessAnalysisDataFlowNode"
            },
            "type": "array"
          },
          "description": {
            "description": "The textual description of the linter correctness analysis.",
            "type": "string"
          },
          "risk_assessment": {
            "description": "Risk assessment for the linter result. Provides False/True positive classifaction and reasoning for the linter result..",
            "type": "string"
          },
          "sanitizers": {
            "description": "The sanitizers used to determine the correctness of the linter result.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "security_control": {
            "description": "Description of any sanitizers, validators, or mitigations found (or lack thereof) for the linter result.",
            "type": "string"
          },
          "security_impact": {
            "description": "Description of the security impact/potential consequences for the linter result.",
            "type": "string"
          },
          "symbols": {
            "description": "Key variables/symbols in the data flow path for the linter result.",
            "type": "string"
          },
          "technical_detail": {
            "description": "Further technical details (eg results about the vulnerability type and exploitation potential) for the linter result.",
            "type": "string"
          },
          "version": {
            "description": "The version of the linter correctness analysis.",
            "type": "string"
          }
        },
        "required": [
          "version",
          "analyzer",
          "correctness",
          "confidence_level"
        ],
        "type": "object"
      },
      "v1ListAPIKeysResponse": {
        "description": "Response to the request to list API keys.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListAPIKeysResponseList"
          }
        },
        "type": "object"
      },
      "v1ListAPIKeysResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1APIKey"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListAuditLogsResponse": {
        "description": "Response to request to list audit logs.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListAuditLogsResponseList"
          }
        },
        "type": "object"
      },
      "v1ListAuditLogsResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1AuditLog"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListAuthenticationLogsResponse": {
        "description": "Response to the request to list authentication logs.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListAuthenticationLogsResponseList"
          }
        },
        "type": "object"
      },
      "v1ListAuthenticationLogsResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1AuthenticationLog"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListDependencyMetadataResponse": {
        "description": "Response returned for requests to list dependency metadata objects.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListDependencyMetadataResponseList"
          }
        },
        "type": "object"
      },
      "v1ListDependencyMetadataResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1DependencyMetadata"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListFindingsResponse": {
        "description": "Response returned for requests to list findings.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListFindingsResponseList"
          }
        },
        "type": "object"
      },
      "v1ListFindingsResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1Finding"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListNamespacesResponse": {
        "description": "Response to the request to list namespaces.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListNamespacesResponseList"
          }
        },
        "type": "object"
      },
      "v1ListNamespacesResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1Namespace"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListPackageManagersResponse": {
        "description": "Response to the request to list package managers.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListPackageManagersResponseList"
          }
        },
        "type": "object"
      },
      "v1ListPackageManagersResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1PackageManager"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListPackageVersionsResponse": {
        "description": "Response to the request to list package versions.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListPackageVersionsResponseList"
          }
        },
        "type": "object"
      },
      "v1ListPackageVersionsResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1PackageVersion"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListPoliciesResponse": {
        "description": "Response to the request to list policies.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListPoliciesResponseList"
          }
        },
        "type": "object"
      },
      "v1ListPoliciesResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1Policy"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListProjectsResponse": {
        "description": "Response returned for requests to list projects.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListProjectsResponseList"
          }
        },
        "type": "object"
      },
      "v1ListProjectsResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1Project"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListResponse": {
        "description": "Response to a list request.",
        "properties": {
          "next_page_id": {
            "description": "The UUID of last message retrieved.",
            "type": "string"
          },
          "next_page_token": {
            "description": "Pagination token that can be used to retrieve the next page of results.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "v1ListSBOMImportsResponse": {
        "description": "Response to the request to list SBOMs.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListSBOMImportsResponseList"
          }
        },
        "type": "object"
      },
      "v1ListSBOMImportsResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1ImportedSBOM"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListScanProfilesResponse": {
        "description": "ListScanProfilesResponse is used by ListScanProfiles.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListScanProfilesResponseList"
          }
        },
        "type": "object"
      },
      "v1ListScanProfilesResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1ScanProfile"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1ListScanResultsResponse": {
        "description": "Response returned for requests to list scan results.",
        "properties": {
          "count_response": {
            "$ref": "#/components/schemas/v1CountResponse"
          },
          "group_response": {
            "$ref": "#/components/schemas/v1GroupResponse"
          },
          "list": {
            "$ref": "#/components/schemas/v1ListScanResultsResponseList"
          }
        },
        "type": "object"
      },
      "v1ListScanResultsResponseList": {
        "properties": {
          "objects": {
            "items": {
              "$ref": "#/components/schemas/v1ScanResult"
            },
            "type": "array"
          },
          "response": {
            "$ref": "#/components/schemas/v1ListResponse"
          }
        },
        "type": "object"
      },
      "v1LocationType": {
        "default": "LOCATION_TYPE_UNSPECIFIED",
        "description": "Classification of the location type within a data flow path.\n\n - LOCATION_TYPE_SOURCE: The source location.\n - LOCATION_TYPE_SINK: The sink location.\n - LOCATION_TYPE_INTERMEDIATE: The intermediate location.\n - LOCATION_TYPE_LOGICAL_BUG: The logical bug location.",
        "enum": [
          "LOCATION_TYPE_UNSPECIFIED",
          "LOCATION_TYPE_SOURCE",
          "LOCATION_TYPE_SINK",
          "LOCATION_TYPE_INTERMEDIATE",
          "LOCATION_TYPE_LOGICAL_BUG"
        ],
        "type": "string"
      },
      "v1MTLSAuth": {
        "properties": {
          "ca_cert": {
            "description": "The CA certificate in PEM format.",
            "type": "string"
          },
          "client_cert": {
            "description": "The client certificate in PEM format.",
            "type": "string"
          },
          "client_key": {
            "description": "The client key in PEM format.",
            "type": "string"
          },
          "server_cert": {
            "description": "The server certificate in PEM format.",
            "type": "string"
          }
        },
        "required": [
          "client_cert",
          "client_key"
        ],
        "type": "object"
      },
      "v1Malware": {
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1MalwareSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of a malware record.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "v1MalwareAssessmentResultType": {
        "default": "MALWARE_ASSESSMENT_RESULT_TYPE_UNSPECIFIED",
        "description": "MalwareAssessmentResultType represents the verdict of a malware assessment.",
        "enum": [
          "MALWARE_ASSESSMENT_RESULT_TYPE_UNSPECIFIED",
          "MALWARE_ASSESSMENT_RESULT_TYPE_MALICIOUS",
          "MALWARE_ASSESSMENT_RESULT_TYPE_BENIGN",
          "MALWARE_ASSESSMENT_RESULT_TYPE_TELEMETRY"
        ],
        "type": "string"
      },
      "v1MalwareIOCAttribute": {
        "description": "MalwareIOC represents a particular Indicator of Compromise.\nUse it to embed the IOC attributes in other messages.",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/v1IOCType"
          },
          "value": {
            "description": "Value of the IOC attribute.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "value"
        ],
        "type": "object"
      },
      "v1MalwareSpec": {
        "properties": {
          "additional_notes": {
            "description": "Additional notes for the malware record.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "advisory_last_updated": {
            "description": "Timestamp of the last update of the malware record by the advisory.",
            "format": "date-time",
            "type": "string"
          },
          "advisory_published": {
            "description": "Date when the advisory published the malware record.",
            "format": "date-time",
            "type": "string"
          },
          "aliases": {
            "description": "Aliases of the malware record.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "contested": {
            "description": "Has the malware record been contested.",
            "type": "boolean"
          },
          "contested_date": {
            "description": "Date when the malware record was contested.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "contested_reason": {
            "description": "Reason for the malware record being contested.",
            "type": "string"
          },
          "contributing_feeds": {
            "description": "Feeds that contributed to this record. Set on merge when more than one\nsource applies; each value is a concrete feed (not UNSPECIFIED). Empty\nwhen a single feed supplies the record or provenance is not tracked.",
            "items": {
              "$ref": "#/components/schemas/SpecMalwareSource"
            },
            "readOnly": true,
            "type": "array"
          },
          "cwe_id": {
            "description": "The CWE ID for the malware record.",
            "type": "string"
          },
          "deletion_exempt": {
            "description": "When true, this record is exempt from orphaned malware deletion and will never be\nautomatically removed during ingestion cleanup, regardless of whether it was ingested.",
            "type": "boolean"
          },
          "ecosystem": {
            "$ref": "#/components/schemas/v1Ecosystem"
          },
          "iocs": {
            "description": "IOC attributes of the malware found during the analysis.",
            "items": {
              "$ref": "#/components/schemas/v1MalwareIOCAttribute"
            },
            "type": "array"
          },
          "malware_detected_on": {
            "description": "Date when the malware was detected.",
            "format": "date-time",
            "type": "string"
          },
          "package_name": {
            "description": "Name of malicious package.",
            "type": "string"
          },
          "package_version": {
            "$ref": "#/components/schemas/v1PackageVersion"
          },
          "pkg_release_date": {
            "description": "Release date of the package version.",
            "format": "date-time",
            "type": "string"
          },
          "purl": {
            "description": "PURL of the package without the version component.",
            "type": "string"
          },
          "ranges": {
            "$ref": "#/components/schemas/SpecMalwareRanges"
          },
          "raw": {
            "$ref": "#/components/schemas/SpecRawMalware"
          },
          "reasons": {
            "description": "Reasons for flagging the package as malicious.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "references": {
            "description": "Reference URLs for the malware record.",
            "items": {
              "$ref": "#/components/schemas/VulnSpecReference"
            },
            "type": "array"
          },
          "source": {
            "$ref": "#/components/schemas/SpecMalwareSource"
          },
          "status": {
            "description": "Status of the malware record.",
            "type": "string"
          },
          "summary": {
            "description": "Summary of the malware record.",
            "type": "string"
          },
          "upsert_key": {
            "description": "The upsert key of the malware record. This will be ecosystem+package_name_version for specific version type records.\nFor range type records, it will be ecosystem+package_name.",
            "type": "string"
          },
          "version": {
            "$ref": "#/components/schemas/SpecMalwareVersion"
          }
        },
        "required": [
          "ecosystem",
          "package_name"
        ],
        "type": "object"
      },
      "v1MavenSpec": {
        "description": "MavenSpec represents a configuration for the Maven package manager.",
        "properties": {
          "basic_auth": {
            "$ref": "#/components/schemas/endorv1BasicAuth"
          },
          "id": {
            "description": "A string that uniquely identifies this proxy/server. This is the\nUUID of the object if not provided.",
            "type": "string"
          },
          "is_plugin_repository": {
            "description": "Indicates whether the repository is a plugin or binary repository.",
            "type": "boolean"
          },
          "mtls": {
            "$ref": "#/components/schemas/v1MTLSAuth"
          },
          "name": {
            "description": "User identifiable name for the repository. This is the name\nof the package manager if not provided.",
            "type": "string"
          },
          "password": {
            "description": "An encrypted password that must be provided by the repository owner.\nSuperseded by `auth`; kept only for migration, removed in a later CR.",
            "type": "string"
          },
          "priority": {
            "description": "The priority of the Maven package manager.\nPriorities are relative. If multiple package managers\nhave the same priority, the order between them can be random.\nLower number means higher priority.",
            "format": "int32",
            "type": "integer"
          },
          "public_repository": {
            "description": "Indicates if cloud storage is accessible publicly.",
            "type": "boolean"
          },
          "region": {
            "title": "Region to be used for cloud storage integration",
            "type": "string"
          },
          "snapshots": {
            "description": "Indicates whether the repository can contain snapshot versions.",
            "type": "boolean"
          },
          "token_auth": {
            "$ref": "#/components/schemas/v1TokenAuth"
          },
          "url": {
            "description": "The URL of the registry that the Maven package manager must use.",
            "type": "string"
          },
          "user": {
            "description": "The user name to use to access this repo.\nSuperseded by `auth`; kept only for migration, removed in a later CR.",
            "type": "string"
          }
        },
        "required": [
          "priority"
        ],
        "type": "object"
      },
      "v1Meta": {
        "description": "Common fields for all Endor Labs resources.",
        "properties": {
          "annotations": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Annotations can be used to attach metadata to a resource message.\nAnnotation values can be small or large, structured or unstructured,\nand may include characters not permitted by labels.\nThe keys may contain alphanumerics, underscores (_), dots (.) and dashes\n(-). The values of an annotation must be 16384 bytes or smaller.",
            "type": "object"
          },
          "create_time": {
            "description": "Time the resource was created.\n\nFormat: 2017-01-15T01:30:15.01Z\nRFC 3339: https://www.ietf.org/rfc/rfc3339.txt.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "created_by": {
            "description": "Name and authentication source of the user who created the object,\nfor example, ewok@endor.ai@google@api-key.",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "Resource description. Must be less than 1024 bytes.",
            "type": "string"
          },
          "index_data": {
            "$ref": "#/components/schemas/v1IndexData"
          },
          "kind": {
            "description": "Resource kind, for example, HelloResponse.\nAuto-generated using the protobuf message proto.MessageName().Name().",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Resource name. Must be 63 characters or less.",
            "type": "string"
          },
          "parent_kind": {
            "description": "Parent object resource kind, for example, Project.",
            "type": "string"
          },
          "parent_uuid": {
            "description": "Parent object UUID.",
            "type": "string"
          },
          "references": {
            "additionalProperties": {
              "$ref": "#/components/schemas/googleprotobufAny"
            },
            "description": "Map of objects referenced in a query API.",
            "readOnly": true,
            "type": "object"
          },
          "tags": {
            "description": "List of tags attached to the resource.\nTags can be used to select objects and to find collections of objects that\nsatisfy certain conditions. A tag must be 255 characters or less.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "update_time": {
            "description": "Time the resource was last updated.\nNote: Updated on all create/patch/delete operations.\n\nFormat: 2017-01-15T01:30:15.01Z\nRFC 3339: https://www.ietf.org/rfc/rfc3339.txt.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "updated_by": {
            "description": "Name and authentication source of the last user who updated the object,\nfor example, vulnerabilityingestor@endor.ai@x509.",
            "readOnly": true,
            "type": "string"
          },
          "upsert_time": {
            "description": "Time the resource was last upserted.\n\nNote:\ncreate_time is only set the first time the resource is created.\nupsert_time is set every time the resource is upseted.\n\nFormat: 2017-01-15T01:30:15.01Z\nRFC 3339: https://www.ietf.org/rfc/rfc3339.txt.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "version": {
            "description": "Message version.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "v1Method": {
        "default": "METHOD_UNSPECIFIED",
        "description": "The type of allowed action.\n\n - METHOD_READ: METHOD_READ is for LIST/GET\n - METHOD_CREATE: METHOD_CREATE is for POST\n - METHOD_UPDATE: METHOD_UPDATE is for PATCH\n - METHOD_DELETE: METHOD_DELETE is for DELETE\n - METHOD_ALL: METHOD_ALL is for all methods (essentially *)",
        "enum": [
          "METHOD_UNSPECIFIED",
          "METHOD_READ",
          "METHOD_CREATE",
          "METHOD_UPDATE",
          "METHOD_DELETE",
          "METHOD_ALL"
        ],
        "type": "string"
      },
      "v1ModelSpec": {
        "properties": {
          "external_installation_id": {
            "description": "Endor Labs Hugging Face installation ID of this project.\nOptional and only available if the project is created through an installation.",
            "type": "string"
          },
          "full_name": {
            "description": "The author and model name.\nFor example, author/model_name.",
            "type": "string"
          },
          "http_clone_url": {
            "description": "The HTTP clone URL of the project.\nFor example, https://huggingface.co/openai-community/gpt2.",
            "type": "string"
          },
          "provider": {
            "$ref": "#/components/schemas/v1AIModelProvider"
          }
        },
        "required": [
          "full_name"
        ],
        "type": "object"
      },
      "v1NPMSpec": {
        "description": "NPMSpec represents a configuration for the Node package manager.",
        "properties": {
          "auth_token": {
            "description": "An auth token that cloud providers typically provide to connect to the\nregistry.",
            "type": "string"
          },
          "mtls": {
            "$ref": "#/components/schemas/v1MTLSAuth"
          },
          "priority": {
            "description": "The priority of the Node package manager.\nPriorities are relative. If multiple package managers\nhave the same priority, the order between them can be random.\nLower number means higher priority.",
            "format": "int32",
            "type": "integer"
          },
          "scope": {
            "title": "A private registry scope.\nEx: @myorg/pkg\nmyorg is the scope",
            "type": "string"
          },
          "token": {
            "description": "A base64 encoded user name and password as token.",
            "type": "string"
          },
          "url": {
            "description": "The URL of the registry that NPM must use.",
            "type": "string"
          }
        },
        "required": [
          "priority"
        ],
        "type": "object"
      },
      "v1NVDAttackComplexity": {
        "default": "NVD_ATTACK_COMPLEXITY_UNSPECIFIED",
        "enum": [
          "NVD_ATTACK_COMPLEXITY_UNSPECIFIED",
          "NVD_ATTACK_COMPLEXITY_HIGH",
          "NVD_ATTACK_COMPLEXITY_LOW"
        ],
        "type": "string"
      },
      "v1NVDAttackVector": {
        "default": "NVD_ATTACK_VECTOR_UNSPECIFIED",
        "enum": [
          "NVD_ATTACK_VECTOR_UNSPECIFIED",
          "NVD_ATTACK_VECTOR_NETWORK",
          "NVD_ATTACK_VECTOR_ADJACENT_NETWORK",
          "NVD_ATTACK_VECTOR_LOCAL",
          "NVD_ATTACK_VECTOR_PHYSICAL"
        ],
        "type": "string"
      },
      "v1NVDExploitCodeMaturity": {
        "default": "NVD_EXPLOIT_CODE_MATURITY_UNSPECIFIED",
        "enum": [
          "NVD_EXPLOIT_CODE_MATURITY_UNSPECIFIED",
          "NVD_EXPLOIT_CODE_MATURITY_UNPROVEN",
          "NVD_EXPLOIT_CODE_MATURITY_PROOF_OF_CONCEPT",
          "NVD_EXPLOIT_CODE_MATURITY_FUNCTIONAL",
          "NVD_EXPLOIT_CODE_MATURITY_HIGH",
          "NVD_EXPLOIT_CODE_MATURITY_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDImpact": {
        "default": "NVD_IMPACT_UNSPECIFIED",
        "enum": [
          "NVD_IMPACT_UNSPECIFIED",
          "NVD_IMPACT_NONE",
          "NVD_IMPACT_LOW",
          "NVD_IMPACT_HIGH"
        ],
        "type": "string"
      },
      "v1NVDMetricType": {
        "default": "NVD_METRIC_TYPE_UNSPECIFIED",
        "enum": [
          "NVD_METRIC_TYPE_UNSPECIFIED",
          "NVD_METRIC_TYPE_PRIMARY",
          "NVD_METRIC_TYPE_SECONDARY"
        ],
        "type": "string"
      },
      "v1NVDModifiedAttackComplexity": {
        "default": "NVD_MODIFIED_ATTACK_COMPLEXITY_UNSPECIFIED",
        "enum": [
          "NVD_MODIFIED_ATTACK_COMPLEXITY_UNSPECIFIED",
          "NVD_MODIFIED_ATTACK_COMPLEXITY_HIGH",
          "NVD_MODIFIED_ATTACK_COMPLEXITY_LOW",
          "NVD_MODIFIED_ATTACK_COMPLEXITY_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDModifiedAttackVector": {
        "default": "NVD_MODIFIED_ATTACK_VECTOR_UNSPECIFIED",
        "enum": [
          "NVD_MODIFIED_ATTACK_VECTOR_UNSPECIFIED",
          "NVD_MODIFIED_ATTACK_VECTOR_NETWORK",
          "NVD_MODIFIED_ATTACK_VECTOR_ADJACENT_NETWORK",
          "NVD_MODIFIED_ATTACK_VECTOR_LOCAL",
          "NVD_MODIFIED_ATTACK_VECTOR_PHYSICAL",
          "NVD_MODIFIED_ATTACK_VECTOR_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDModifiedImpact": {
        "default": "NVD_MODIFIED_IMPACT_UNSPECIFIED",
        "enum": [
          "NVD_MODIFIED_IMPACT_UNSPECIFIED",
          "NVD_MODIFIED_IMPACT_NONE",
          "NVD_MODIFIED_IMPACT_LOW",
          "NVD_MODIFIED_IMPACT_HIGH",
          "NVD_MODIFIED_IMPACT_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDModifiedPrivilegesRequired": {
        "default": "NVD_MODIFIED_PRIVILEGES_REQUIRED_UNSPECIFIED",
        "enum": [
          "NVD_MODIFIED_PRIVILEGES_REQUIRED_UNSPECIFIED",
          "NVD_MODIFIED_PRIVILEGES_REQUIRED_HIGH",
          "NVD_MODIFIED_PRIVILEGES_REQUIRED_LOW",
          "NVD_MODIFIED_PRIVILEGES_REQUIRED_NONE",
          "NVD_MODIFIED_PRIVILEGES_REQUIRED_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDModifiedScope": {
        "default": "NVD_MODIFIED_SCOPE_UNSPECIFIED",
        "enum": [
          "NVD_MODIFIED_SCOPE_UNSPECIFIED",
          "NVD_MODIFIED_SCOPE_UNCHANGED",
          "NVD_MODIFIED_SCOPE_CHANGED",
          "NVD_MODIFIED_SCOPE_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDModifiedUserInteraction": {
        "default": "NVD_MODIFIED_USER_INTERACTION_UNSPECIFIED",
        "enum": [
          "NVD_MODIFIED_USER_INTERACTION_UNSPECIFIED",
          "NVD_MODIFIED_USER_INTERACTION_NONE",
          "NVD_MODIFIED_USER_INTERACTION_REQUIRED",
          "NVD_MODIFIED_USER_INTERACTION_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDPrivilegesRequired": {
        "default": "NVD_PRIVILEGES_REQUIRED_UNSPECIFIED",
        "enum": [
          "NVD_PRIVILEGES_REQUIRED_UNSPECIFIED",
          "NVD_PRIVILEGES_REQUIRED_HIGH",
          "NVD_PRIVILEGES_REQUIRED_LOW",
          "NVD_PRIVILEGES_REQUIRED_NONE"
        ],
        "type": "string"
      },
      "v1NVDRemediationLevel": {
        "default": "NVD_REMEDIATION_LEVEL_UNSPECIFIED",
        "enum": [
          "NVD_REMEDIATION_LEVEL_UNSPECIFIED",
          "NVD_REMEDIATION_LEVEL_OFFICIAL_FIX",
          "NVD_REMEDIATION_LEVEL_TEMPORARY_FIX",
          "NVD_REMEDIATION_LEVEL_WORKAROUND",
          "NVD_REMEDIATION_LEVEL_UNAVAILABLE",
          "NVD_REMEDIATION_LEVEL_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDReportConfidence": {
        "default": "NVD_REPORT_CONFIDENCE_UNSPECIFIED",
        "enum": [
          "NVD_REPORT_CONFIDENCE_UNSPECIFIED",
          "NVD_REPORT_CONFIDENCE_UNKNOWN",
          "NVD_REPORT_CONFIDENCE_REASONABLE",
          "NVD_REPORT_CONFIDENCE_CONFIRMED",
          "NVD_REPORT_CONFIDENCE_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDRequirement": {
        "default": "NVD_REQUIREMENT_UNSPECIFIED",
        "enum": [
          "NVD_REQUIREMENT_UNSPECIFIED",
          "NVD_REQUIREMENT_LOW",
          "NVD_REQUIREMENT_MEDIUM",
          "NVD_REQUIREMENT_HIGH",
          "NVD_REQUIREMENT_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDScope": {
        "default": "NVD_SCOPE_UNSPECIFIED",
        "enum": [
          "NVD_SCOPE_UNSPECIFIED",
          "NVD_SCOPE_UNCHANGED",
          "NVD_SCOPE_CHANGED"
        ],
        "type": "string"
      },
      "v1NVDSeverity": {
        "default": "NVD_SEVERITY_UNSPECIFIED",
        "enum": [
          "NVD_SEVERITY_UNSPECIFIED",
          "NVD_SEVERITY_NONE",
          "NVD_SEVERITY_LOW",
          "NVD_SEVERITY_MEDIUM",
          "NVD_SEVERITY_HIGH",
          "NVD_SEVERITY_CRITICAL"
        ],
        "type": "string"
      },
      "v1NVDStatus": {
        "default": "NVD_STATUS_UNSPECIFIED",
        "enum": [
          "NVD_STATUS_UNSPECIFIED",
          "NVD_STATUS_RECEIVED",
          "NVD_STATUS_AWAITING_ANALYSIS",
          "NVD_STATUS_UNDERGOING_ANALYSIS",
          "NVD_STATUS_ANALYZED",
          "NVD_STATUS_MODIFIED",
          "NVD_STATUS_DEFERRED",
          "NVD_STATUS_REJECTED"
        ],
        "type": "string"
      },
      "v1NVDUserInteraction": {
        "default": "NVD_USER_INTERACTION_UNSPECIFIED",
        "enum": [
          "NVD_USER_INTERACTION_UNSPECIFIED",
          "NVD_USER_INTERACTION_NONE",
          "NVD_USER_INTERACTION_REQUIRED"
        ],
        "type": "string"
      },
      "v1NVDV40AttackComplexity": {
        "default": "NVDV40_ATTACK_COMPLEXITY_UNSPECIFIED",
        "enum": [
          "NVDV40_ATTACK_COMPLEXITY_UNSPECIFIED",
          "NVDV40_ATTACK_COMPLEXITY_HIGH",
          "NVDV40_ATTACK_COMPLEXITY_LOW"
        ],
        "type": "string"
      },
      "v1NVDV40AttackRequirements": {
        "default": "NVDV40_ATTACK_REQUIREMENTS_UNSPECIFIED",
        "enum": [
          "NVDV40_ATTACK_REQUIREMENTS_UNSPECIFIED",
          "NVDV40_ATTACK_REQUIREMENTS_NONE",
          "NVDV40_ATTACK_REQUIREMENTS_PRESENT"
        ],
        "type": "string"
      },
      "v1NVDV40AttackVector": {
        "default": "NVDV40_ATTACK_VECTOR_UNSPECIFIED",
        "enum": [
          "NVDV40_ATTACK_VECTOR_UNSPECIFIED",
          "NVDV40_ATTACK_VECTOR_NETWORK",
          "NVDV40_ATTACK_VECTOR_ADJACENT",
          "NVDV40_ATTACK_VECTOR_LOCAL",
          "NVDV40_ATTACK_VECTOR_PHYSICAL"
        ],
        "type": "string"
      },
      "v1NVDV40Automatable": {
        "default": "NVDV40_AUTOMATABLE_UNSPECIFIED",
        "enum": [
          "NVDV40_AUTOMATABLE_UNSPECIFIED",
          "NVDV40_AUTOMATABLE_NO",
          "NVDV40_AUTOMATABLE_YES",
          "NVDV40_AUTOMATABLE_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40ExploitMaturity": {
        "default": "NVDV40_EXPLOIT_MATURITY_UNSPECIFIED",
        "enum": [
          "NVDV40_EXPLOIT_MATURITY_UNSPECIFIED",
          "NVDV40_EXPLOIT_MATURITY_UNREPORTED",
          "NVDV40_EXPLOIT_MATURITY_PROOF_OF_CONCEPT",
          "NVDV40_EXPLOIT_MATURITY_ATTACKED",
          "NVDV40_EXPLOIT_MATURITY_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40Impact": {
        "default": "NVDV40_IMPACT_UNSPECIFIED",
        "enum": [
          "NVDV40_IMPACT_UNSPECIFIED",
          "NVDV40_IMPACT_NONE",
          "NVDV40_IMPACT_LOW",
          "NVDV40_IMPACT_HIGH"
        ],
        "type": "string"
      },
      "v1NVDV40ModifiedAttackComplexity": {
        "default": "NVDV40_MODIFIED_ATTACK_COMPLEXITY_UNSPECIFIED",
        "enum": [
          "NVDV40_MODIFIED_ATTACK_COMPLEXITY_UNSPECIFIED",
          "NVDV40_MODIFIED_ATTACK_COMPLEXITY_HIGH",
          "NVDV40_MODIFIED_ATTACK_COMPLEXITY_LOW",
          "NVDV40_MODIFIED_ATTACK_COMPLEXITY_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40ModifiedAttackRequirements": {
        "default": "NVDV40_MODIFIED_ATTACK_REQUIREMENTS_UNSPECIFIED",
        "enum": [
          "NVDV40_MODIFIED_ATTACK_REQUIREMENTS_UNSPECIFIED",
          "NVDV40_MODIFIED_ATTACK_REQUIREMENTS_NONE",
          "NVDV40_MODIFIED_ATTACK_REQUIREMENTS_PRESENT",
          "NVDV40_MODIFIED_ATTACK_REQUIREMENTS_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40ModifiedAttackVector": {
        "default": "NVDV40_MODIFIED_ATTACK_VECTOR_UNSPECIFIED",
        "enum": [
          "NVDV40_MODIFIED_ATTACK_VECTOR_UNSPECIFIED",
          "NVDV40_MODIFIED_ATTACK_VECTOR_NETWORK",
          "NVDV40_MODIFIED_ATTACK_VECTOR_ADJACENT",
          "NVDV40_MODIFIED_ATTACK_VECTOR_LOCAL",
          "NVDV40_MODIFIED_ATTACK_VECTOR_PHYSICAL",
          "NVDV40_MODIFIED_ATTACK_VECTOR_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40ModifiedImpact": {
        "default": "NVDV40_MODIFIED_IMPACT_UNSPECIFIED",
        "enum": [
          "NVDV40_MODIFIED_IMPACT_UNSPECIFIED",
          "NVDV40_MODIFIED_IMPACT_NONE",
          "NVDV40_MODIFIED_IMPACT_LOW",
          "NVDV40_MODIFIED_IMPACT_HIGH",
          "NVDV40_MODIFIED_IMPACT_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40ModifiedPrivilegesRequired": {
        "default": "NVDV40_MODIFIED_PRIVILEGES_REQUIRED_UNSPECIFIED",
        "enum": [
          "NVDV40_MODIFIED_PRIVILEGES_REQUIRED_UNSPECIFIED",
          "NVDV40_MODIFIED_PRIVILEGES_REQUIRED_HIGH",
          "NVDV40_MODIFIED_PRIVILEGES_REQUIRED_LOW",
          "NVDV40_MODIFIED_PRIVILEGES_REQUIRED_NONE",
          "NVDV40_MODIFIED_PRIVILEGES_REQUIRED_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40ModifiedSubImpact": {
        "default": "NVDV40_MODIFIED_SUB_IMPACT_UNSPECIFIED",
        "enum": [
          "NVDV40_MODIFIED_SUB_IMPACT_UNSPECIFIED",
          "NVDV40_MODIFIED_SUB_IMPACT_NEGLIGIBLE",
          "NVDV40_MODIFIED_SUB_IMPACT_LOW",
          "NVDV40_MODIFIED_SUB_IMPACT_HIGH",
          "NVDV40_MODIFIED_SUB_IMPACT_SAFETY",
          "NVDV40_MODIFIED_SUB_IMPACT_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40ModifiedUserInteraction": {
        "default": "NVDV40_MODIFIED_USER_INTERACTION_UNSPECIFIED",
        "enum": [
          "NVDV40_MODIFIED_USER_INTERACTION_UNSPECIFIED",
          "NVDV40_MODIFIED_USER_INTERACTION_NONE",
          "NVDV40_MODIFIED_USER_INTERACTION_PASSIVE",
          "NVDV40_MODIFIED_USER_INTERACTION_ACTIVE",
          "NVDV40_MODIFIED_USER_INTERACTION_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40PrivilegesRequired": {
        "default": "NVDV40_PRIVILEGES_REQUIRED_UNSPECIFIED",
        "enum": [
          "NVDV40_PRIVILEGES_REQUIRED_UNSPECIFIED",
          "NVDV40_PRIVILEGES_REQUIRED_HIGH",
          "NVDV40_PRIVILEGES_REQUIRED_LOW",
          "NVDV40_PRIVILEGES_REQUIRED_NONE"
        ],
        "type": "string"
      },
      "v1NVDV40ProviderUrgency": {
        "default": "NVDV40_PROVIDER_URGENCY_UNSPECIFIED",
        "enum": [
          "NVDV40_PROVIDER_URGENCY_UNSPECIFIED",
          "NVDV40_PROVIDER_URGENCY_CLEAR",
          "NVDV40_PROVIDER_URGENCY_GREEN",
          "NVDV40_PROVIDER_URGENCY_AMBER",
          "NVDV40_PROVIDER_URGENCY_RED",
          "NVDV40_PROVIDER_URGENCY_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40Recovery": {
        "default": "NVDV40_RECOVERY_UNSPECIFIED",
        "enum": [
          "NVDV40_RECOVERY_UNSPECIFIED",
          "NVDV40_RECOVERY_AUTOMATIC",
          "NVDV40_RECOVERY_USER",
          "NVDV40_RECOVERY_IRRECOVERABLE",
          "NVDV40_RECOVERY_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40Requirement": {
        "default": "NVDV40_REQUIREMENT_UNSPECIFIED",
        "enum": [
          "NVDV40_REQUIREMENT_UNSPECIFIED",
          "NVDV40_REQUIREMENT_LOW",
          "NVDV40_REQUIREMENT_MEDIUM",
          "NVDV40_REQUIREMENT_HIGH",
          "NVDV40_REQUIREMENT_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40Safety": {
        "default": "NVDV40_SAFETY_UNSPECIFIED",
        "enum": [
          "NVDV40_SAFETY_UNSPECIFIED",
          "NVDV40_SAFETY_NEGLIGIBLE",
          "NVDV40_SAFETY_PRESENT",
          "NVDV40_SAFETY_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40UserInteraction": {
        "default": "NVDV40_USER_INTERACTION_UNSPECIFIED",
        "enum": [
          "NVDV40_USER_INTERACTION_UNSPECIFIED",
          "NVDV40_USER_INTERACTION_NONE",
          "NVDV40_USER_INTERACTION_PASSIVE",
          "NVDV40_USER_INTERACTION_ACTIVE"
        ],
        "type": "string"
      },
      "v1NVDV40ValueDensity": {
        "default": "NVDV40_VALUE_DENSITY_UNSPECIFIED",
        "enum": [
          "NVDV40_VALUE_DENSITY_UNSPECIFIED",
          "NVDV40_VALUE_DENSITY_DIFFUSE",
          "NVDV40_VALUE_DENSITY_CONCENTRATED",
          "NVDV40_VALUE_DENSITY_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDV40VulnerabilityResponseEffort": {
        "default": "NVDV40_VULNERABILITY_RESPONSE_EFFORT_UNSPECIFIED",
        "enum": [
          "NVDV40_VULNERABILITY_RESPONSE_EFFORT_UNSPECIFIED",
          "NVDV40_VULNERABILITY_RESPONSE_EFFORT_LOW",
          "NVDV40_VULNERABILITY_RESPONSE_EFFORT_MODERATE",
          "NVDV40_VULNERABILITY_RESPONSE_EFFORT_HIGH",
          "NVDV40_VULNERABILITY_RESPONSE_EFFORT_NOT_DEFINED"
        ],
        "type": "string"
      },
      "v1NVDVulnerability": {
        "description": "NVD Vulnerability.\nBased on schema definition provided by NVD here. https://csrc.nist.gov/schema/nvd/api/2.0/cve_api_json_2.0.schema.",
        "properties": {
          "cve": {
            "$ref": "#/components/schemas/NVDVulnerabilityRootCve"
          }
        },
        "type": "object"
      },
      "v1Namespace": {
        "description": "Namespace provides a mechanism for isolating groups of resources.\nNamespaces may be defined in a parent child hierarchy.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1NamespaceSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of a namespace.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta"
        ],
        "type": "object"
      },
      "v1NamespaceSpec": {
        "properties": {
          "full_name": {
            "description": "The fully qualified name of a namespace,\nwhich identifies the namespace and the associated\nhierarchy. For example, endord.dev.domain.\nThe field is auto-generated at creation.",
            "readOnly": true,
            "type": "string"
          },
          "managed": {
            "description": "Managed indicates that the object is managed by the system.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "v1NugetSpec": {
        "description": "NugetSpec represents a configuration for the NuGet package manager.",
        "properties": {
          "basic_auth": {
            "$ref": "#/components/schemas/endorv1BasicAuth"
          },
          "password": {
            "description": "An encrypted password that must be provided by the repository owner.\nSuperseded by `auth`; kept only for migration, removed in a later CR.",
            "type": "string"
          },
          "priority": {
            "description": "The priority of the NuGet package manager.\nPriorities are relative. If multiple package managers\nhave the same priority, the order between them can be random.\nLower number means higher priority.",
            "format": "int32",
            "type": "integer"
          },
          "token_auth": {
            "$ref": "#/components/schemas/v1TokenAuth"
          },
          "url": {
            "description": "The URL of the registry that the NuGet package manager must use.",
            "type": "string"
          },
          "user": {
            "description": "The username to use to access this repository.\nSuperseded by `auth`; kept only for migration, removed in a later CR.",
            "type": "string"
          }
        },
        "required": [
          "priority"
        ],
        "type": "object"
      },
      "v1PHPToolChain": {
        "properties": {
          "composer_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "v1PackageManager": {
        "description": "PackageManager holds the data for the various package\nmanagers of the enterprise. Mainly locations and\naccess credentials when needed to resolve/scan packages\nfrom private package managers.\nAn enterprise can create one or more package managers\nin a namespace. All the package managers of the given\nnamespace will be taken into account when resolving.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "propagate": {
            "description": "Propagate indicates that the object should be visible in child namespaces.",
            "type": "boolean"
          },
          "spec": {
            "$ref": "#/components/schemas/v1PackageManagerSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of the package manager.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "v1PackageManagerSpec": {
        "properties": {
          "auth_provider": {
            "$ref": "#/components/schemas/PackageManagerAuthProvider"
          },
          "cargo": {
            "$ref": "#/components/schemas/v1CargoSpec"
          },
          "cocoapod": {
            "$ref": "#/components/schemas/v1CocoapodSpec"
          },
          "conan": {
            "$ref": "#/components/schemas/v1ConanSpec"
          },
          "gem": {
            "$ref": "#/components/schemas/v1GemSpec"
          },
          "gradle": {
            "$ref": "#/components/schemas/v1GradleSpec"
          },
          "mvn": {
            "$ref": "#/components/schemas/v1MavenSpec"
          },
          "npm": {
            "$ref": "#/components/schemas/v1NPMSpec"
          },
          "nuget": {
            "$ref": "#/components/schemas/v1NugetSpec"
          },
          "package_manager_status": {
            "$ref": "#/components/schemas/SpecPackageManagerStatus"
          },
          "packagist": {
            "$ref": "#/components/schemas/v1PackagistSpec"
          },
          "pypi": {
            "$ref": "#/components/schemas/v1PypiSpec"
          },
          "swift": {
            "$ref": "#/components/schemas/v1SwiftSpec"
          }
        },
        "type": "object"
      },
      "v1PackageVersion": {
        "description": "PackageVersion represents a version of a package.",
        "properties": {
          "context": {
            "$ref": "#/components/schemas/v1Context"
          },
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "processing_status": {
            "$ref": "#/components/schemas/v1ProcessingStatus"
          },
          "spec": {
            "$ref": "#/components/schemas/v1PackageVersionSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of the package version resource.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec",
          "context"
        ],
        "type": "object"
      },
      "v1PackageVersionDependency": {
        "description": "PackageVersionDependency is a dependency of a package version.",
        "properties": {
          "c": {
            "$ref": "#/components/schemas/PackageVersionDependencyUnresolvedDependencySpec"
          },
          "cargo": {
            "$ref": "#/components/schemas/PackageVersionDependencyCargoDependencySpec"
          },
          "cocoapod": {
            "$ref": "#/components/schemas/PackageVersionDependencyCocoapodDependencySpec"
          },
          "conan": {
            "$ref": "#/components/schemas/PackageVersionDependencyConanDependencySpec"
          },
          "gem": {
            "$ref": "#/components/schemas/PackageVersionDependencyGemDependencySpec"
          },
          "githubaction": {
            "$ref": "#/components/schemas/PackageVersionDependencyGitHubActionDependencySpec"
          },
          "go": {
            "$ref": "#/components/schemas/PackageVersionDependencyGoDependencySpec"
          },
          "hugging_face": {
            "$ref": "#/components/schemas/PackageVersionDependencyHuggingFaceDependencySpec"
          },
          "maven": {
            "$ref": "#/components/schemas/PackageVersionDependencyMavenDependencySpec"
          },
          "npm": {
            "$ref": "#/components/schemas/PackageVersionDependencyNpmDependencySpec"
          },
          "nuget": {
            "$ref": "#/components/schemas/PackageVersionDependencyNugetDependencySpec"
          },
          "packagist": {
            "$ref": "#/components/schemas/PackageVersionDependencyPackagistDependencySpec"
          },
          "pypi": {
            "$ref": "#/components/schemas/PackageVersionDependencyPypiDependencySpec"
          },
          "swift": {
            "$ref": "#/components/schemas/PackageVersionDependencySwiftDependencySpec"
          }
        },
        "type": "object"
      },
      "v1PackageVersionMetadata": {
        "description": "PackageVersionMetadata represents a metadata for a package version.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1PackageVersionMetadataSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of the package version metadata.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "v1PackageVersionMetadataSpec": {
        "properties": {
          "ecosystem": {
            "$ref": "#/components/schemas/v1Ecosystem"
          },
          "last_updated": {
            "description": "The last time that this entry was updated.",
            "format": "date-time",
            "type": "string"
          },
          "versions": {
            "items": {
              "$ref": "#/components/schemas/endorv1VersionMetadata"
            },
            "type": "array"
          }
        },
        "required": [
          "versions",
          "ecosystem"
        ],
        "type": "object"
      },
      "v1PackageVersionSpec": {
        "properties": {
          "bazel_metadata": {
            "$ref": "#/components/schemas/v1BazelMetadata"
          },
          "call_graph_available": {
            "description": "Set to true if a call graph was successfully created by the latest scan.",
            "type": "boolean"
          },
          "code_owners": {
            "$ref": "#/components/schemas/v1CodeOwnerData"
          },
          "container_metadata": {
            "$ref": "#/components/schemas/v1ContainerMetadata"
          },
          "ecosystem": {
            "$ref": "#/components/schemas/v1Ecosystem"
          },
          "internal_reference_key": {
            "description": "Unique key for the package generated by Endor Labs to simplify lookups.",
            "readOnly": true,
            "type": "string"
          },
          "language": {
            "$ref": "#/components/schemas/v1Language"
          },
          "package_name": {
            "description": "The name of the package of this package version. It is\ncalculated automatically from the package version name.",
            "readOnly": true,
            "type": "string"
          },
          "precomputed_call_graph_state": {
            "$ref": "#/components/schemas/v1PrecomputedState"
          },
          "project_uuid": {
            "description": "The UUID of the project to which this package version belongs.",
            "type": "string"
          },
          "relative_path": {
            "description": "Relative path of the package from where the package was discovered\nrelative to the workspace root.",
            "type": "string"
          },
          "release_timestamp": {
            "description": "The release timestamp corresponding to the time a particular package\nversion was released.",
            "format": "date-time",
            "type": "string"
          },
          "resolution_errors": {
            "$ref": "#/components/schemas/PackageVersionResolutionErrors"
          },
          "resolved_dependencies": {
            "$ref": "#/components/schemas/v1Bom"
          },
          "source_code_reference": {
            "$ref": "#/components/schemas/PackageVersionSourceCodeReference"
          },
          "unresolved_dependencies": {
            "description": "The exact dependency declarations in the package manager descriptor file.\nIn Golang, this represents the list of dependencies in the go.mod.\nIn Java/Maven, this represents the list of dependencies in the pom.xml.",
            "items": {
              "$ref": "#/components/schemas/v1PackageVersionDependency"
            },
            "type": "array"
          },
          "upstream_reference": {
            "description": "The public package this private package was forked from, so its\nvulnerabilities can be attributed to the fork. Empty means the resolver\nhas not run yet; \"N/A\" means it ran and found no upstream.",
            "type": "string"
          }
        },
        "required": [
          "project_uuid"
        ],
        "type": "object"
      },
      "v1PackagistSpec": {
        "description": "Represents a configuration for the Packagist(PHP) package manager.",
        "properties": {
          "auth_kind": {
            "$ref": "#/components/schemas/PackagistSpecAuthKind"
          },
          "host": {
            "description": "The host name of the registry or repository where the PHP packages are\nhosted.",
            "type": "string"
          },
          "password": {
            "description": "An encrypted password that must be provided by the repository owner.",
            "type": "string"
          },
          "user": {
            "description": "The user name to use to access the given host.",
            "type": "string"
          }
        },
        "required": [
          "auth_kind"
        ],
        "type": "object"
      },
      "v1Permissions": {
        "description": "Holds a map associating each resource kind with the\n set of methods that are allowed for this kind.\n\n For example:",
        "properties": {
          "except_resources": {
            "description": "List of resources that should not be accounted in any * resource rules.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "roles": {
            "items": {
              "$ref": "#/components/schemas/v1SystemRole"
            },
            "type": "array"
          },
          "rules": {
            "additionalProperties": {
              "$ref": "#/components/schemas/PermissionsMethods"
            },
            "title": "For message (or resource) repository, I want to provide permissions READ\nonly. This will create map[\"repository\"] = []{READ}",
            "type": "object"
          }
        },
        "type": "object"
      },
      "v1PlatformSource": {
        "default": "PLATFORM_SOURCE_UNSPECIFIED",
        "description": "Type of source control platform a resource was discovered on.",
        "enum": [
          "PLATFORM_SOURCE_UNSPECIFIED",
          "PLATFORM_SOURCE_GITHUB",
          "PLATFORM_SOURCE_GITLAB",
          "PLATFORM_SOURCE_GITSERVER",
          "PLATFORM_SOURCE_BITBUCKET",
          "PLATFORM_SOURCE_BINARY",
          "PLATFORM_SOURCE_HUGGING_FACE",
          "PLATFORM_SOURCE_AZURE",
          "PLATFORM_SOURCE_ARCHIVE",
          "PLATFORM_SOURCE_EXTERNAL_AI_SERVICE",
          "PLATFORM_SOURCE_GITHUB_ENTERPRISE"
        ],
        "type": "string"
      },
      "v1Policy": {
        "description": "Policy represents a policy in the system.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "propagate": {
            "description": "Whether the object should be visible in child namespaces or not.",
            "type": "boolean"
          },
          "spec": {
            "$ref": "#/components/schemas/v1PolicySpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of the policy.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "v1PolicyNotificationAction": {
        "properties": {
          "aggregation_type": {
            "$ref": "#/components/schemas/NotificationActionAggregationType"
          },
          "bypass_exceptions": {
            "description": "Set to true if exception policies should be ignored for findings\nmatching this policy.",
            "type": "boolean"
          },
          "notification_target_uuids": {
            "description": "The list of UUIDs of the notification targets that are configured for\nthis policy.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1PolicySpec": {
        "properties": {
          "admission": {
            "$ref": "#/components/schemas/PolicyAdmissionAction"
          },
          "disable": {
            "description": "Disables a policy without deleting it.",
            "type": "boolean"
          },
          "exception": {
            "$ref": "#/components/schemas/PolicyExceptionAction"
          },
          "finding": {
            "$ref": "#/components/schemas/PolicyFindingAction"
          },
          "finding_categories": {
            "description": "List of finding categories that the policy creates or acts on findings\nfor. This field can be used to group policies.",
            "items": {
              "$ref": "#/components/schemas/v1FindingCategory"
            },
            "type": "array"
          },
          "finding_level": {
            "$ref": "#/components/schemas/SpecFindingLevel"
          },
          "group_by_fields": {
            "description": "Custom fields to group policy output by. This may be a\nsubset of all custom keys in the policy output. You do not need to\nadd all custom fields here, just the ones you want to be used to\ngroup the matches by. The corresponding values\nare always treated as a single string.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "notification": {
            "$ref": "#/components/schemas/v1PolicyNotificationAction"
          },
          "policy_type": {
            "$ref": "#/components/schemas/PolicyPolicyType"
          },
          "project_exceptions": {
            "description": "The set of tags that projects that are matched\nwith are excluded from the policy. Allows exceptions. Exceptions\ncan be provided with or without selectors.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "project_selector": {
            "description": "The set of tags that projects must have for the policy to be executed\nagainst. If left empty, the policy applies to all projects of the\nnamespace. The items in the array correspond to an OR operator. That is,\nany project with a tag that matches any of the project_selector values\nwill be matched.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "query_statements": {
            "description": "The list of OPA query statements that must be executed to evaluate the\npolicy. For example, [ \"data.packagename.allow\" ], [opulated from\ntemplate if applicable.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "resource_kinds": {
            "description": "Identifies all resources that a policy requires.\nFor example, \"Project\", \"Repository\", \"RepositoryVersion\",\n\"PackageVersion\", \"DependencyMetadata\", \"Metric\", \"LinterResult\",\n\"Finding\", etc. For the \"Metric\" resource you must also specify the\ncorresponding parent resource kind.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "rule": {
            "description": "The policy rule in text format.\n\nFor example:\n\npackage policyexample\n\ndefault allow = false\n\nallow {\n   data.resources.Project[_].meta.name = go-memdb\"\n}",
            "type": "string"
          },
          "template_parameters": {
            "description": "Template parameter metadata for this template version.",
            "items": {
              "$ref": "#/components/schemas/PolicyTemplateParameter"
            },
            "type": "array"
          },
          "template_uuid": {
            "description": "Indicates that the policy is created from a template.",
            "type": "string"
          },
          "template_values": {
            "additionalProperties": {
              "$ref": "#/components/schemas/PolicyTemplateParameterValues"
            },
            "description": "The map of key-value pairs for parameters used to customize the template.",
            "type": "object"
          },
          "template_version": {
            "description": "Template version.",
            "type": "string"
          }
        },
        "required": [
          "policy_type"
        ],
        "type": "object"
      },
      "v1PrecomputedState": {
        "default": "PRECOMPUTED_STATE_UNSPECIFIED",
        "description": "PrecomputedState represents the state of precomputed operations.\n\n - PRECOMPUTED_STATE_UNSPECIFIED: UNSPECIFIED indicates that the precomputed state is not set or unknown.\n - PRECOMPUTED_STATE_SUCCESS: SUCCESS indicates that the precomputed operation completed successfully.\n - PRECOMPUTED_STATE_FAILURE: FAILURE indicates that the precomputed operation failed.",
        "enum": [
          "PRECOMPUTED_STATE_UNSPECIFIED",
          "PRECOMPUTED_STATE_SUCCESS",
          "PRECOMPUTED_STATE_FAILURE"
        ],
        "type": "string"
      },
      "v1ProcessingStatus": {
        "properties": {
          "analytic_time": {
            "description": "Last time a project was analyzed.\n\nFormat: 2017-01-15T01:30:15.01Z\nRFC 3339: https://www.ietf.org/rfc/rfc3339.txt.",
            "format": "date-time",
            "type": "string"
          },
          "deactivated": {
            "description": "Indicates whether the project is deactivated.\nDeactivated projects are not scanned and are not visible to users in the UI by default.",
            "type": "boolean"
          },
          "disable_automated_scan": {
            "description": "This is a private package and it must not be scanned by the background\nscheduler. It will be scanned by an endorctl client instead. Default:\nfalse.",
            "type": "boolean"
          },
          "metadata": {
            "$ref": "#/components/schemas/v1ProcessingStatusMetadata"
          },
          "queue_time": {
            "description": "Last time a project was queued.\n\nFormat: 2017-01-15T01:30:15.01Z\nRFC 3339: https://www.ietf.org/rfc/rfc3339.txt.",
            "format": "date-time",
            "type": "string"
          },
          "scan_state": {
            "$ref": "#/components/schemas/v1ScanState"
          },
          "scan_time": {
            "description": "Last time a project was ingested.\n\nFormat: 2017-01-15T01:30:15.01Z\nRFC 3339: https://www.ietf.org/rfc/rfc3339.txt",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1ProcessingStatusMetadata": {
        "properties": {
          "full_history_scan_time": {
            "format": "date-time",
            "title": "Last time a project was scanned with deep secrets scanning",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1Project": {
        "description": "Logical root object that serves as the basis for organizing and managing all\ninformation related to a repository.\n\nA project corresponds to a repository.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "processing_status": {
            "$ref": "#/components/schemas/v1ProcessingStatus"
          },
          "spec": {
            "$ref": "#/components/schemas/v1ProjectSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The unique identifier of the project.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "v1ProjectSpec": {
        "properties": {
          "git": {
            "$ref": "#/components/schemas/v1GitSpec"
          },
          "ingestion_token": {
            "description": "Third-party API authentication token to read project related information.",
            "readOnly": true,
            "type": "string"
          },
          "internal_reference_key": {
            "description": "Unique key for the project generated by Endor Labs to simplify lookups.",
            "readOnly": true,
            "type": "string"
          },
          "is_archived": {
            "description": "Indicates whether the project is archived.\nArchived projects are typically read-only and users can choose to scan or not scan the project in the app integrations settings.",
            "type": "boolean"
          },
          "model": {
            "$ref": "#/components/schemas/v1ModelSpec"
          },
          "platform_source": {
            "$ref": "#/components/schemas/v1PlatformSource"
          },
          "sbom": {
            "$ref": "#/components/schemas/v1SBOMSpec"
          },
          "scan_profile_uuid": {
            "type": "string"
          },
          "toolchain_profile_uuid": {
            "description": "The toolchain required to build and scan the project.",
            "type": "string"
          },
          "unsupported": {
            "$ref": "#/components/schemas/v1UnsupportedSpec"
          }
        },
        "required": [
          "platform_source"
        ],
        "type": "object"
      },
      "v1PypiSpec": {
        "description": "PypiSpec represents a configuration for the Python package manager.",
        "properties": {
          "basic_auth": {
            "$ref": "#/components/schemas/endorv1BasicAuth"
          },
          "mtls": {
            "$ref": "#/components/schemas/v1MTLSAuth"
          },
          "password": {
            "description": "An encrypted password that must be provided by the repository owner.\nSuperseded by `auth`; kept only for migration, removed in a later CR.",
            "type": "string"
          },
          "priority": {
            "description": "The priority of the Python package manager.\nPriorities are relative. If multiple package managers\nhave the same priority, the order between them can be random.\nLower number means higher priority.",
            "format": "int32",
            "type": "integer"
          },
          "token_auth": {
            "$ref": "#/components/schemas/v1TokenAuth"
          },
          "url": {
            "description": "The URL of the registry that the Python package manager must use.",
            "type": "string"
          },
          "user": {
            "description": "The user name to use to access this repository.\nSuperseded by `auth`; kept only for migration, removed in a later CR.",
            "type": "string"
          }
        },
        "required": [
          "priority"
        ],
        "type": "object"
      },
      "v1PythonToolChain": {
        "properties": {
          "pip_packages": {
            "additionalProperties": {
              "$ref": "#/components/schemas/v1ToolChainVersion"
            },
            "description": "the key is the package name to install through pip.",
            "type": "object"
          },
          "poetry_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "v1RemediationParameters": {
        "description": "RemediationParameters holds the settings for remediation actions.",
        "properties": {
          "automated_pr_parameters": {
            "$ref": "#/components/schemas/RemediationParametersAutomatedPRParameters"
          }
        },
        "type": "object"
      },
      "v1ResolutionStatus": {
        "description": "ResolutionStatus is the response status that indicates if the operation\nsucceeded. The response status will be stored with the\nresults. The caller will continue with subsequent requests\nand the server can continue with additional packages.",
        "properties": {
          "description": {
            "description": "A description of the error. Plugins should use proper descriptions that\nwill be helpful to users or operations.",
            "type": "string"
          },
          "error_analysis": {
            "description": "The analysis of the error based on the error parsing rules\nthat can provide additional context on possible fixes.",
            "items": {
              "$ref": "#/components/schemas/ResolutionStatusErrorAnalysis"
            },
            "type": "array"
          },
          "error_analysis_best_match": {
            "$ref": "#/components/schemas/ResolutionStatusErrorAnalysis"
          },
          "operation": {
            "description": "The operation during which encountered the error.\nA Go plugin can return as operation reading go.mod file,\na Java plugin can be reading a pom.xml. Every plugin is\ndoing different operations and it should identify here\nthe operation that failed. This again will help with debugging.",
            "type": "string"
          },
          "status_error": {
            "$ref": "#/components/schemas/ResolutionStatusStatusError"
          },
          "target": {
            "description": "The target object (path or package) where the failure happened. For package\nscans it is the package. For the workspace scans it is the target path.",
            "type": "string"
          },
          "target_files": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "The content of manifest files or the list of files based on the operation.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "v1RubyToolChain": {
        "properties": {
          "dependabot_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "ruby_gems": {
            "additionalProperties": {
              "$ref": "#/components/schemas/v1ToolChainVersion"
            },
            "type": "object"
          },
          "version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "v1RustToolChain": {
        "properties": {
          "mirai_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "rustup_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          }
        },
        "required": [
          "version",
          "rustup_version"
        ],
        "type": "object"
      },
      "v1SBOMKind": {
        "default": "SBOM_KIND_UNSPECIFIED",
        "description": "SBOM type.",
        "enum": [
          "SBOM_KIND_UNSPECIFIED",
          "SBOM_KIND_CYCLONEDX",
          "SBOM_KIND_SPDX"
        ],
        "type": "string"
      },
      "v1SBOMSpec": {
        "properties": {
          "kind": {
            "$ref": "#/components/schemas/v1SBOMKind"
          },
          "main_component_purl": {
            "description": "Package URL (PURL) is a standard to identify packages, libraries, or\nmodules in an SBOM. Provides information about the package like name,\nversion, and repository location.",
            "type": "string"
          }
        },
        "required": [
          "main_component_purl",
          "kind"
        ],
        "type": "object"
      },
      "v1SastData": {
        "description": "Fields common to every SAST-shaped finding: AI SAST and rule-based\n(opengrep) findings alike. location reuses SourceLocation rather than a\nseparate snippet field.",
        "properties": {
          "ai_analyses": {
            "description": "False-positive analyses. Populating this reroutes the finding to the\nFP-validation UI tab.",
            "items": {
              "$ref": "#/components/schemas/v1LinterCorrectnessAnalysis"
            },
            "type": "array"
          },
          "classification": {
            "$ref": "#/components/schemas/v1FindingClassification"
          },
          "confidence": {
            "description": "Confidence that the finding is a true positive.",
            "type": "string"
          },
          "cwes": {
            "description": "CWE identifiers associated with the finding.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "impact": {
            "description": "Impact of the finding if exploited.",
            "type": "string"
          },
          "languages": {
            "description": "Programming languages the finding's location spans.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "likelihood": {
            "description": "Likelihood the finding is exploitable. Rule-based findings only.",
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/v1SourceLocation"
          },
          "message": {
            "description": "Detailed finding message, shown when the finding has no explanation or\nremediation text of its own.",
            "type": "string"
          },
          "references": {
            "description": "Reference links for the finding.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "rule_id": {
            "description": "Rule identifier: CWE ID for an AI SAST finding, or the rule id for a\nrule-based finding.",
            "type": "string"
          },
          "rule_name": {
            "description": "Human-readable rule/CWE name, used for UI grouping and rule filtering.",
            "type": "string"
          },
          "rule_uuid": {
            "description": "UUID of the SemgrepRule resource that produced the finding. Rule-based\nfindings only.",
            "type": "string"
          },
          "rule_version": {
            "description": "Version of the rule that produced the finding. Rule-based findings only.",
            "type": "string"
          },
          "tags": {
            "description": "Compliance/classification tags (e.g. OWASP, SANS).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "description": "Short display title for the detected pattern, distinct from rule_name.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1ScalaToolChain": {
        "properties": {
          "java_version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          },
          "version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "v1ScanProfile": {
        "description": "ScanProfile represents the scan configuration to use across different\nprojects.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "propagate": {
            "description": "Indicates that the object should be visible in the child namespaces.",
            "type": "boolean"
          },
          "spec": {
            "$ref": "#/components/schemas/v1ScanProfileSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "UUID is a universally unique identifier for the tool chain profile.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "tenant_meta",
          "meta",
          "spec"
        ],
        "type": "object"
      },
      "v1ScanProfileSpec": {
        "description": "Spec is the internal specification of the object.",
        "properties": {
          "ai_sast_analysis_parameters": {
            "$ref": "#/components/schemas/v1AISastAnalysisParameters"
          },
          "automated_scan_parameters": {
            "$ref": "#/components/schemas/v1AutomatedScanParameters"
          },
          "exporter_parameters": {
            "$ref": "#/components/schemas/SpecExporterParameters"
          },
          "is_default": {
            "description": "is_default indicates that the scan profile is the namespace default.",
            "type": "boolean"
          },
          "remediation_parameters": {
            "$ref": "#/components/schemas/v1RemediationParameters"
          },
          "security_review_scanner_parameters": {
            "$ref": "#/components/schemas/SpecSecurityReviewScannerParameters"
          },
          "toolchain_profile": {
            "$ref": "#/components/schemas/v1ToolChainProfile"
          }
        },
        "type": "object"
      },
      "v1ScanResult": {
        "description": "Contains the results of an endorctl scan.",
        "properties": {
          "context": {
            "$ref": "#/components/schemas/v1Context"
          },
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1ScanResultSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of the object.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta",
          "context"
        ],
        "type": "object"
      },
      "v1ScanResultSpec": {
        "description": "ScanResult specific data.",
        "properties": {
          "all_findings": {
            "additionalProperties": {
              "$ref": "#/components/schemas/SpecFindingData"
            },
            "description": "Deprecated.",
            "type": "object"
          },
          "blocking_findings": {
            "description": "List of blocking finding uuids identified by the scan.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "components_executed": {
            "description": "Scanner components that actually executed during this scan.",
            "items": {
              "$ref": "#/components/schemas/SpecScanComponent"
            },
            "type": "array"
          },
          "deleted_findings": {
            "additionalProperties": {
              "$ref": "#/components/schemas/SpecFindingData"
            },
            "description": "Map of basic metadata for all findings deleted by the scan, indexed by finding uuid.\nNot available for CI runs.",
            "type": "object"
          },
          "deleted_package_versions": {
            "additionalProperties": {
              "$ref": "#/components/schemas/SpecPackageVersionData"
            },
            "description": "List of deleted package versions indexed by UUID.",
            "type": "object"
          },
          "ecosystem_dep_counts": {
            "additionalProperties": {
              "format": "int32",
              "type": "integer"
            },
            "description": "Number of dependencies per ecosystems processed during the scan.",
            "type": "object"
          },
          "ecosystem_pkg_counts": {
            "additionalProperties": {
              "format": "int32",
              "type": "integer"
            },
            "description": "Number of package versions per ecosystems processed during the scan.",
            "type": "object"
          },
          "end_time": {
            "description": "Time the scan ended.",
            "format": "date-time",
            "type": "string"
          },
          "environment": {
            "$ref": "#/components/schemas/SpecEnvironment"
          },
          "errors": {
            "description": "Deprecated.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "exception_findings": {
            "additionalProperties": {
              "$ref": "#/components/schemas/SpecFindingData"
            },
            "description": "Deprecated.",
            "type": "object"
          },
          "exit_code": {
            "$ref": "#/components/schemas/v1EndorctlRC"
          },
          "findings": {
            "description": "List of all finding UUIDs identified by the scan.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "has_panic": {
            "description": "True if there was a panic during the scan.",
            "type": "boolean"
          },
          "infos": {
            "description": "Deprecated.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "languages_detected": {
            "description": "List of languages detected by the scan.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "logs": {
            "description": "User facing log output for the scan.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "policies_triggered": {
            "description": "List of policy uuids triggered during the scan.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "provisioning_result": {
            "$ref": "#/components/schemas/SpecProvisioningResultData"
          },
          "provisioning_result_uuid": {
            "type": "string"
          },
          "refs": {
            "description": "List of branches scanned.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "runtimes": {
            "additionalProperties": {
              "format": "int32",
              "type": "integer"
            },
            "description": "A map of internal scan type runtimes (in milliseconds) indexed by internal scan type string.",
            "type": "object"
          },
          "start_time": {
            "description": "Time the scan started.",
            "format": "date-time",
            "type": "string"
          },
          "stats": {
            "additionalProperties": {
              "format": "int32",
              "type": "integer"
            },
            "description": "Map of stats such as how many issues were ingested during the scan.",
            "type": "object"
          },
          "status": {
            "$ref": "#/components/schemas/ScanResultSpecStatus"
          },
          "type": {
            "$ref": "#/components/schemas/ScanResultSpecType"
          },
          "versions": {
            "description": "Version information for each ref.",
            "items": {
              "$ref": "#/components/schemas/v1Version"
            },
            "type": "array"
          },
          "warning_findings": {
            "description": "List of warning finding uuids identified by the scan.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "warnings": {
            "description": "Deprecated.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "status",
          "type"
        ],
        "type": "object"
      },
      "v1ScanState": {
        "default": "SCAN_STATE_UNSPECIFIED",
        "description": "Scan state for a project or package version.\n\n - SCAN_STATE_NOT_PROCESSED: Object has not been processed by the system yet.\nSet when the project or package is created for the first time.\nA new project or package version is automatically placed in this state.\n - SCAN_STATE_IDLE: Object has been scanned at least once.\n - SCAN_STATE_INGESTING: Object is being scanned.\n - SCAN_STATE_ANALYTIC: Object is being analyzed.\n - SCAN_STATE_UNREACHABLE: Object cannot be ingested because it is not reachable from the scheduler.\n - SCAN_STATE_REQUEST_FULL_RESCAN: Object is marked for a complete rescan.\nThis only applies to OSS projects.\n - SCAN_STATE_REQUEST_INCREMENTAL_RESCAN: Object is marked for an incremental rescan, where only new packages\ndiscovered in the scan are added. Indicates that this project should be\nrescanned with a higher priority. Often because it is used by a customer\nand we need any new packages to be discovered and scanned with higher\npriority. If the project is put in this state, we will scan any new\npackages at high priority but we will not re-scan older packages.\n - SCAN_STATE_QUEUED: Object is queued to be scanned.\n - SCAN_STATE_QUARANTINED: Scan scheduling was unsuccessful due to a system errors. Object is\nquarantined from additional scheduling. Potentially object is an\norphan or similar situations.",
        "enum": [
          "SCAN_STATE_UNSPECIFIED",
          "SCAN_STATE_NOT_PROCESSED",
          "SCAN_STATE_IDLE",
          "SCAN_STATE_INGESTING",
          "SCAN_STATE_ANALYTIC",
          "SCAN_STATE_UNREACHABLE",
          "SCAN_STATE_REQUEST_FULL_RESCAN",
          "SCAN_STATE_REQUEST_INCREMENTAL_RESCAN",
          "SCAN_STATE_QUEUED",
          "SCAN_STATE_QUARANTINED"
        ],
        "type": "string"
      },
      "v1ScoreCard": {
        "description": "A scorecard contains a total score per ScoreCategory.",
        "properties": {
          "analysis_scope_description": {
            "description": "Description of the analysis scope.",
            "type": "string"
          },
          "category_scores": {
            "description": "The per category scores.",
            "items": {
              "$ref": "#/components/schemas/v1CategoryScore"
            },
            "type": "array"
          },
          "overall_score": {
            "description": "The overall score.",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "v1ScoreCategory": {
        "default": "SCORE_CATEGORY_UNSPECIFIED",
        "description": "The types of scores that Endor Labs tracks.\n\n - SCORE_CATEGORY_POPULARITY: Tracks a project's popularity.\n - SCORE_CATEGORY_ACTIVITY: Tracks the amount of activity around a project.\n - SCORE_CATEGORY_BEST_PRACTICES: Tracks how much a project follows various development best practices.\n - SCORE_CATEGORY_SUSPICIOUS_ACTIVITY: Tracks suspicious activity on a project.\n - SCORE_CATEGORY_DEPENDENCIES: Tracks the dependencies of a project.\n - SCORE_CATEGORY_SECURITY: Tracks security aspects of a project.\n - SCORE_CATEGORY_CODE_QUALITY: Tracks the code quality of a project.\n - SCORE_CATEGORY_OPERATIONAL_RISK: Tracks the operationa risk of a project.",
        "enum": [
          "SCORE_CATEGORY_UNSPECIFIED",
          "SCORE_CATEGORY_POPULARITY",
          "SCORE_CATEGORY_ACTIVITY",
          "SCORE_CATEGORY_BEST_PRACTICES",
          "SCORE_CATEGORY_SUSPICIOUS_ACTIVITY",
          "SCORE_CATEGORY_DEPENDENCIES",
          "SCORE_CATEGORY_SECURITY",
          "SCORE_CATEGORY_CODE_QUALITY",
          "SCORE_CATEGORY_OPERATIONAL_RISK"
        ],
        "type": "string"
      },
      "v1ScoreFactor": {
        "description": "A score factor for an object. Each score factor\ndescribes a piece of information used while computing the overall score.\nEach factor is associated with a specific category. Score factors can have a\npositive impact on the repository score and then they have a positive score, or can\nhave a negative impact on the overall score and then they have a positive score.\nThe description captures additional information for the particular factor.\nIn general there are many (tens or hundreds) of such score factors split across the ScoreCategory categories.\n\nPostive score factor example:\n\n Category: SCORE_CATEGORY_BEST_PRACTICES\n\n Score: 2\n\n Description: The repository is enforcing signed commits.\n\nNegative score factor example:\n\nCategory: SCORE_CATEGORY_VULNERABILITIES\n\nScore: -1\n\nDescription: the repository has unresolved issues related to vulnerabilities that have been open for more than 3 months.",
        "properties": {
          "category": {
            "$ref": "#/components/schemas/v1ScoreCategory"
          },
          "description": {
            "description": "Text description of the factor and its meaning.",
            "type": "string"
          },
          "evidence": {
            "description": "The details of what the factor was raised.",
            "type": "string"
          },
          "id": {
            "description": "Unique ID to identify the factor.",
            "type": "string"
          },
          "name": {
            "description": "An external name for the factor.",
            "type": "string"
          },
          "score": {
            "description": "The score for this factor.",
            "format": "int32",
            "type": "integer"
          },
          "score_float": {
            "description": "The float value of the score for the factor.",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "v1ScoreFactorList": {
        "description": "A list of score factors that are directly exported by the related anlaytics.",
        "properties": {
          "score_factors": {
            "items": {
              "$ref": "#/components/schemas/v1ScoreFactor"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1SecurityReviewFindingData": {
        "properties": {
          "ai_meta": {
            "$ref": "#/components/schemas/v1AIMeta"
          },
          "category": {
            "$ref": "#/components/schemas/PullRequestSecurityReviewResultInfoSecurityReviewCategory"
          },
          "code_snippet": {
            "$ref": "#/components/schemas/PullRequestSecurityReviewResultInfoCodeSnippet"
          },
          "justification": {
            "description": "Justification for the security review category.",
            "type": "string"
          },
          "security_impact_type": {
            "$ref": "#/components/schemas/SecurityAspectMetricSecurityImpactType"
          }
        },
        "type": "object"
      },
      "v1SourceLocation": {
        "properties": {
          "description": {
            "description": "Human-readable description of what happens at this dataflow step.",
            "type": "string"
          },
          "end_column": {
            "format": "int32",
            "title": "Ending column number in the file",
            "type": "integer"
          },
          "end_line": {
            "format": "int32",
            "title": "Ending line number in the file",
            "type": "integer"
          },
          "function_name": {
            "description": "The name of the function for this location if available.",
            "type": "string"
          },
          "relative_path": {
            "description": "The relative path to the file where the issue was found.",
            "type": "string"
          },
          "scm_link": {
            "description": "Permalink to this location in the SCM (GitHub/GitLab/Azure/Bitbucket). Displayed in the UI.",
            "type": "string"
          },
          "snippet": {
            "description": "Code snippet containing the issue.",
            "type": "string"
          },
          "start_column": {
            "format": "int32",
            "title": "Starting column number in the file",
            "type": "integer"
          },
          "start_line": {
            "format": "int32",
            "title": "Starting line number in the file",
            "type": "integer"
          },
          "type": {
            "$ref": "#/components/schemas/v1LocationType"
          }
        },
        "type": "object"
      },
      "v1SwiftSpec": {
        "description": "Represents a configuration for the Swift package manager.",
        "properties": {
          "basic_auth": {
            "$ref": "#/components/schemas/v1SwiftSpecBasicAuth"
          },
          "priority": {
            "description": "The priority of the Swift package manager.\nPriorities are relative. If multiple package managers\nhave the same priority, the order between them can be random.\nLower number means higher priority.",
            "format": "int32",
            "type": "integer"
          },
          "scope": {
            "description": "The private registry scope.",
            "type": "string"
          },
          "token": {
            "description": "Access token to authenticate to the registry.",
            "type": "string"
          },
          "url": {
            "description": "The URL of the registry that the Swift package manager must use.",
            "type": "string"
          }
        },
        "required": [
          "priority"
        ],
        "type": "object"
      },
      "v1SwiftSpecBasicAuth": {
        "properties": {
          "password": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1SwiftToolChain": {
        "properties": {
          "additional_swift_versions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "version": {
            "$ref": "#/components/schemas/v1ToolChainVersion"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "v1SystemEvaluationMethodDefinition": {
        "default": "SYSTEM_EVALUATION_METHOD_DEFINITION_UNSPECIFIED",
        "description": "SystemEvaluationMethodDefinition is the type of evaluation method implemented\nby the system.\n\n - SYSTEM_EVALUATION_METHOD_DEFINITION_VULNERABILITIES: VULNERABILITIES calculates vulnerability related findings.\n - SYSTEM_EVALUATION_METHOD_DEFINITION_SCORES: SCORES calculates score related findings.\n - SYSTEM_EVALUATION_METHOD_DEFINITION_CONDITIONS: CONDITIONS calculates findings related to specific conditions.\n - SYSTEM_EVALUATION_METHOD_DEFINITION_POLICIES: POLICIES evaluates methods based on user defined policies.\n - SYSTEM_EVALUATION_METHOD_DEFINITION_TYPOSQUATTING: TYPOSQUATTING calculates the findings related to typosquatted packages.\n - SYSTEM_EVALUATION_METHOD_DEFINITION_CIS: CIS calculates the findings related to CIS benchmark requirements.\n - SYSTEM_EVALUATION_METHOD_DEFINITION_MALWARE: MALWARE calculates the findings related to malware.\n - SYSTEM_EVALUATION_METHOD_DEFINITION_SECURITY_REVIEW: SECURITY REVIEW calculates security review related findings.\n - SYSTEM_EVALUATION_METHOD_DEFINITION_AI_SAST: AI_SAST calculates AI SAST related findings.",
        "enum": [
          "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"
        ],
        "type": "string"
      },
      "v1SystemRole": {
        "default": "SYSTEM_ROLE_UNSPECIFIED",
        "description": "Captures the default system roles for permissions.\n\n - SYSTEM_ROLE_ADMIN: ADMIN has read/write access to all objects in the tenant.\n - SYSTEM_ROLE_READ_ONLY: READ_ONLY only can read all data, but perform no updates.\n - SYSTEM_ROLE_POLICY_EDITOR: Policy editor has read access on all objects, and the ability to create and\nmanage policies.\n - SYSTEM_ROLE_CODE_SCANNER: CODE_SCANNER has all permissions to run a scan and view the results.\n - SYSTEM_ROLE_ENDOR_PATCHING: ENDOR_PATCHING has permissions to use Endor Lab's factory.\n - SYSTEM_ROLE_SYNC_ORG: SYNC_ORG has permissions to perform a sync-org scan on all supported\nplatforms (GitHub, Azure, GitLab etc).\n - SYSTEM_ROLE_ONPREM_SCHEDULER: ONPREM_SCHEDULER has permissions to perform sync-org, scans and manage\nonprem scheduler related objects.\n - SYSTEM_ROLE_ENDOR_PROXY: Deprecated: Use SYSTEM_ROLE_PACKAGE_FIREWALL instead.\nENDOR_PROXY has permissions to access proxy endpoints in endorfactory service.\n - SYSTEM_ROLE_PACKAGE_FIREWALL: PACKAGE_FIREWALL has permissions to access firewall endpoints for package firewall in endorfactory service.\n - SYSTEM_ROLE_AI_AUDIT: AI_AUDIT has least-privilege permissions to run ai-audit hooks (agent session events).",
        "enum": [
          "SYSTEM_ROLE_UNSPECIFIED",
          "SYSTEM_ROLE_ADMIN",
          "SYSTEM_ROLE_READ_ONLY",
          "SYSTEM_ROLE_POLICY_EDITOR",
          "SYSTEM_ROLE_CODE_SCANNER",
          "SYSTEM_ROLE_ENDOR_PATCHING",
          "SYSTEM_ROLE_SYNC_ORG",
          "SYSTEM_ROLE_ONPREM_SCHEDULER",
          "SYSTEM_ROLE_ENDOR_PROXY",
          "SYSTEM_ROLE_PACKAGE_FIREWALL",
          "SYSTEM_ROLE_AI_AUDIT"
        ],
        "type": "string"
      },
      "v1Target": {
        "properties": {
          "exclude": {
            "description": "Set to true if a dependency is excluded from the target.",
            "type": "boolean"
          },
          "name": {
            "description": "Target name. Example: linux, dotnet, x86_64.",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/TargetTargetType"
          },
          "version": {
            "description": "Target version, for example, 6.0.0 for the dotnet framework\nversion 6.0.0. If there is no version specified for a target then that\nmeans that a dependency is applicable for all versions of that target.\nThis field is optional because few targets, such as CPU_ARCH,\ndo not have a version.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "name",
          "exclude"
        ],
        "type": "object"
      },
      "v1TenantMeta": {
        "description": "Tenant related data for the tenant containing the resource.",
        "properties": {
          "namespace": {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "type": "string"
          }
        },
        "required": [
          "namespace"
        ],
        "type": "object"
      },
      "v1TokenAuth": {
        "description": "TokenAuth is a single opaque token credential. Its wire encoding is\necosystem-specific (see per-spec doc comments): a literal Authorization:\nBearer header where the tooling supports it (Maven), otherwise the HTTP\nBasic password. Named TokenAuth (not BearerAuth) precisely because it is\nnot a bearer header on every ecosystem.",
        "properties": {
          "token": {
            "description": "The opaque token credential; see the message doc for per-ecosystem wire encoding.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1ToolChainProfile": {
        "description": "ToolChainProfile represents the list of tool chains that need to be\ninstalled.",
        "properties": {
          "os": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ToolChainProfileArchitectureToolChain"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "v1ToolChainVersion": {
        "description": "ToolChainVersion defines the tool chain's source from where it can be installed.",
        "properties": {
          "name": {
            "description": "name of the tool chain.",
            "type": "string"
          },
          "relative_tool_chain_path": {
            "description": "relative path of the tool chain in tar ball.",
            "type": "string"
          },
          "sha256_sum": {
            "description": "SHA256 Digest of the tool that will be downloaded.",
            "type": "string"
          },
          "urls": {
            "description": "http mirros from where the tool can be downloaded.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "v1ToolChains": {
        "properties": {
          "android_tool_chain": {
            "$ref": "#/components/schemas/v1AndroidToolChain"
          },
          "dotnet_tool_chain": {
            "$ref": "#/components/schemas/v1DotNetToolChain"
          },
          "environment_variables": {
            "description": "environment_variables are the env variables to be set during toolchain installation.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "golang_tool_chain": {
            "$ref": "#/components/schemas/v1GolangToolChain"
          },
          "java_tool_chain": {
            "$ref": "#/components/schemas/v1JavaToolChain"
          },
          "javascript_tool_chain": {
            "$ref": "#/components/schemas/v1JavaScriptToolChain"
          },
          "php_tool_chain": {
            "$ref": "#/components/schemas/v1PHPToolChain"
          },
          "python_tool_chain": {
            "$ref": "#/components/schemas/v1PythonToolChain"
          },
          "ruby_tool_chain": {
            "$ref": "#/components/schemas/v1RubyToolChain"
          },
          "rust_tool_chain": {
            "$ref": "#/components/schemas/v1RustToolChain"
          },
          "scala_tool_chain": {
            "$ref": "#/components/schemas/v1ScalaToolChain"
          },
          "swift_tool_chain": {
            "$ref": "#/components/schemas/v1SwiftToolChain"
          }
        },
        "type": "object"
      },
      "v1ToolChainsSource": {
        "default": "TOOL_CHAINS_SOURCE_UNSPECIFIED",
        "description": "Toolchain source types.",
        "enum": [
          "TOOL_CHAINS_SOURCE_UNSPECIFIED",
          "TOOL_CHAINS_SOURCE_API",
          "TOOL_CHAINS_SOURCE_FILE",
          "TOOL_CHAINS_SOURCE_AUTO_DETECTION",
          "TOOL_CHAINS_SOURCE_DEFAULTS",
          "TOOL_CHAINS_SOURCE_NAMESPACE_DEFAULT"
        ],
        "type": "string"
      },
      "v1UnsupportedSpec": {
        "description": "A project with a source code type that is not supported or not known.",
        "properties": {
          "name": {
            "description": "Name of the unsupported project, which can be an unsupported clone URL or\na package name.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "v1UpdateRequest": {
        "description": "Message used for all update requests.",
        "properties": {
          "force": {
            "description": "Force will force the update of the resource if any\nchecks fail.",
            "type": "boolean"
          },
          "update_mask": {
            "description": "Fields to update. Defaults to all fields.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1User": {
        "description": "User represents a user in the system.\n\nMostly includes configuration parameters that are user wise.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1UserSpec"
          },
          "uuid": {
            "description": "The UUID of a user.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta"
        ],
        "type": "object"
      },
      "v1UserSpec": {
        "properties": {
          "email": {
            "description": "Email of the user. It can be changed.",
            "type": "string"
          },
          "event_tracking": {
            "additionalProperties": {
              "$ref": "#/components/schemas/v1Events"
            },
            "description": "Lists of user events indexed by event type.",
            "type": "object"
          },
          "first_name": {
            "description": "First name of the user as identified. It can be changed.",
            "type": "string"
          },
          "groups": {
            "description": "Groups that the user is a member of, as identified by the\nclaims returned by the identity provider.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "last_login_time": {
            "description": "Last login time keeps a record of the last time\nthat the user logged in.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "last_name": {
            "description": "Last name of the user. It can be changed.",
            "type": "string"
          },
          "token_hash": {
            "description": "The hash of the last token issued to the user.\nDuring authentication we make sure that this hash matches\nthe token provided.",
            "type": "string"
          },
          "user_name": {
            "readOnly": true,
            "title": "Username of a user.\nUsernames are automatically derived from the token.\nDepending on the identity source it can be the\nnickname (GitHub) or email (Google and others)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1Version": {
        "properties": {
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Version metadata.",
            "type": "object"
          },
          "ref": {
            "description": "Resolved ref of the source control version.\nCan be a tag, a branch or a SHA.",
            "type": "string"
          },
          "sha": {
            "description": "SHA of the source control version.\nBecause the SHA might not be possible to resolved this field is optional.",
            "type": "string"
          }
        },
        "required": [
          "ref"
        ],
        "type": "object"
      },
      "v1Vuln": {
        "description": "Vuln represents an Endor Labs vulnerability in the system.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/v1Meta"
          },
          "spec": {
            "$ref": "#/components/schemas/v1VulnSpec"
          },
          "tenant_meta": {
            "$ref": "#/components/schemas/v1TenantMeta"
          },
          "uuid": {
            "description": "The UUID of a vulnerability.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "meta"
        ],
        "type": "object"
      },
      "v1VulnSpec": {
        "properties": {
          "additional_endor_notes": {
            "description": "Notes from the Endor Labs analysis of the vulnerability.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "additional_notes": {
            "description": "Notes by the person that processed the CVE.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "affected": {
            "items": {
              "$ref": "#/components/schemas/VulnSpecAffected"
            },
            "type": "array"
          },
          "aliases": {
            "description": "Optional. IDs for the same vulnerability in other databases.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "credits": {
            "description": "Optional. Credits for the vulnerability.",
            "items": {
              "$ref": "#/components/schemas/VulnSpecCredit"
            },
            "type": "array"
          },
          "cvss_v3_severity": {
            "$ref": "#/components/schemas/SpecCVSSV3Severity"
          },
          "cvss_v4_severity": {
            "$ref": "#/components/schemas/SpecCVSSV4Severity"
          },
          "database_specific": {
            "description": "Optional. JSON object holding additional information about the\nvulnerability as defined by the database for which the record applies.",
            "type": "object"
          },
          "deepdive": {
            "description": "Indicates whether the research team performed full analysis on multiple\nartifact_ids involved in CVE.",
            "type": "boolean"
          },
          "disputed": {
            "description": "Indicates whether the research team considers a CVE should be disputed\nbased on analysis.",
            "type": "boolean"
          },
          "epss_score": {
            "$ref": "#/components/schemas/SpecEPSSScore"
          },
          "malicious": {
            "description": "Indicates whether this item is classified as malicious or not.",
            "type": "boolean"
          },
          "modified": {
            "description": "The RFC3339 timestamp indicating when this entry was last modified.",
            "format": "date-time",
            "type": "string"
          },
          "published": {
            "description": "The RFC3339 timestamp indicating when this entry was published.",
            "format": "date-time",
            "type": "string"
          },
          "raw": {
            "$ref": "#/components/schemas/SpecRaw"
          },
          "references": {
            "description": "Reference URLs for the vulnerability.",
            "items": {
              "$ref": "#/components/schemas/VulnSpecReference"
            },
            "type": "array"
          },
          "related": {
            "description": "Optional. List of IDs of closely related vulnerabilities, such as the\nsame problem in alternate ecosystems.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "summary": {
            "description": "Long summary of the vulnerability.",
            "type": "string"
          },
          "withdrawn": {
            "description": "Optional. The RFC3339 timestamp indicating when this entry is considered\nto be withdrawn.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      }
    }
  },
  "info": {
    "description": "Integrate your application with Endor Labs using the REST API.",
    "title": "Endor Labs REST API Reference",
    "version": "1.0"
  },
  "openapi": "3.0.3",
  "paths": {
    "/v1/namespaces/{tenant_meta.namespace}/api-keys": {
      "get": {
        "description": "Lists all API keys for a given namespace.",
        "operationId": "APIKeyService_ListAPIKeys",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListAPIKeysResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListAPIKeys",
        "tags": [
          "APIKeyService"
        ]
      },
      "post": {
        "description": "Creates an API key.",
        "operationId": "APIKeyService_CreateAPIKey",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/APIKeyServiceCreateAPIKeyBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1APIKey"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "CreateAPIKey",
        "tags": [
          "APIKeyService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/api-keys/{uuid}": {
      "delete": {
        "description": "Deletes the API key specified by the UUID.",
        "operationId": "APIKeyService_DeleteAPIKey",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the resource to be deleted.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Action to be executed with delete request.",
            "in": "query",
            "name": "delete_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Force will force the deletion of the resource if any\nchecks fail.",
            "in": "query",
            "name": "delete_parameters.force",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "DeleteAPIKey",
        "tags": [
          "APIKeyService"
        ]
      },
      "get": {
        "description": "Fetches the API key dentified by the UUID.",
        "operationId": "APIKeyService_GetAPIKey",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1APIKey"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetAPIKey",
        "tags": [
          "APIKeyService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/audit-logs": {
      "get": {
        "description": "List all audit logs in a given namespace.",
        "operationId": "AuditLogService_ListAuditLogs",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListAuditLogsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListAuditLogs",
        "tags": [
          "AuditLogService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/audit-logs/{uuid}": {
      "get": {
        "description": "Fetches an audit log identified by the UUID.",
        "operationId": "AuditLogService_GetAuditLog",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1AuditLog"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetAuditLog",
        "tags": [
          "AuditLogService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/authentication-logs": {
      "get": {
        "description": "Lists all authentication logs in a given namespace.",
        "operationId": "AuthenticationLogService_ListAuthenticationLogs",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListAuthenticationLogsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListAuthenticationLogs",
        "tags": [
          "AuthenticationLogService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/authentication-logs/{uuid}": {
      "get": {
        "description": "Fetches the authentication log identified by the UUID.",
        "operationId": "AuthenticationLogService_GetAuthenticationLog",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1AuthenticationLog"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetAuthenticationLog",
        "tags": [
          "AuthenticationLogService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/dependency-metadata": {
      "get": {
        "description": "List dependency metadata objects based on the specified list\nparameters.",
        "operationId": "DependencyMetadataService_ListDependencyMetadata",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListDependencyMetadataResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListDependencyMetadata",
        "tags": [
          "DependencyMetadataService"
        ],
        "x-internal": false
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/dependency-metadata/{uuid}": {
      "get": {
        "description": "Returns a specified dependency metadata object.",
        "operationId": "DependencyMetadataService_GetDependencyMetadata",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1DependencyMetadata"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetDependencyMetadata",
        "tags": [
          "DependencyMetadataService"
        ],
        "x-internal": false
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/findings": {
      "get": {
        "description": "List findings based on the specified list parameters.",
        "operationId": "FindingService_ListFindings",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListFindingsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListFindings",
        "tags": [
          "FindingService"
        ],
        "x-internal": false
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/findings/{uuid}": {
      "get": {
        "description": "Fetch the finding identified by the UUID.",
        "operationId": "FindingService_GetFinding",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Finding"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetFinding",
        "tags": [
          "FindingService"
        ],
        "x-internal": false
      }
    },
    "/v1/namespaces/{object.tenant_meta.namespace}/namespaces": {
      "patch": {
        "description": "Updates a provided namespace based on its UUID.",
        "operationId": "NamespaceService_UpdateNamespace",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "object.tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NamespaceServiceUpdateNamespaceBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Namespace"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "UpdateNamespace",
        "tags": [
          "NamespaceService"
        ]
      }
    },
    "/v1/namespaces/{object.tenant_meta.namespace}/namespaces/{object.uuid}/namespaces": {
      "patch": {
        "description": "Updates a provided namespace based on its UUID.",
        "operationId": "NamespaceService_UpdateNamespace2",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "object.tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of a namespace.",
            "in": "path",
            "name": "object.uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NamespaceServiceUpdateNamespaceBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Namespace"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "UpdateNamespace",
        "tags": [
          "NamespaceService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/namespaces": {
      "get": {
        "description": "Lists all namespaces in a tenant.",
        "operationId": "NamespaceService_ListNamespaces",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListNamespacesResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListNamespaces",
        "tags": [
          "NamespaceService"
        ]
      },
      "post": {
        "description": "Creates a namespace.",
        "operationId": "NamespaceService_CreateNamespace",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NamespaceServiceCreateNamespaceBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Namespace"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "CreateNamespace",
        "tags": [
          "NamespaceService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/namespaces/{uuid}": {
      "delete": {
        "description": "Deletes a namespace based on its UUID.",
        "operationId": "NamespaceService_DeleteNamespace",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the resource to be deleted.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Action to be executed with delete request.",
            "in": "query",
            "name": "delete_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Force will force the deletion of the resource if any\nchecks fail.",
            "in": "query",
            "name": "delete_parameters.force",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "DeleteNamespace",
        "tags": [
          "NamespaceService"
        ]
      },
      "get": {
        "description": "Fetches a namespace identified by its UUID.",
        "operationId": "NamespaceService_GetNamespace",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Namespace"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetNamespace",
        "tags": [
          "NamespaceService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/package-managers": {
      "get": {
        "description": "Lists all package managers in a given namespace",
        "operationId": "PackageManagerService_ListPackageManagers",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListPackageManagersResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListPackageManagers",
        "tags": [
          "PackageManagerService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/package-managers/{uuid}": {
      "get": {
        "description": "Fetches the package manager identified by the UUID.",
        "operationId": "PackageManagerService_GetPackageManager",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1PackageManager"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetPackageManager",
        "tags": [
          "PackageManagerService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/package-versions": {
      "get": {
        "description": "Lists all the package versions in a given namespace.",
        "operationId": "PackageVersionService_ListPackageVersions",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListPackageVersionsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListPackageVersions",
        "tags": [
          "PackageVersionService"
        ],
        "x-internal": false
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/package-versions/{uuid}": {
      "get": {
        "description": "Fetches a package version specified by the UUID.",
        "operationId": "PackageVersionService_GetPackageVersion",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1PackageVersion"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetPackageVersion",
        "tags": [
          "PackageVersionService"
        ],
        "x-internal": false
      }
    },
    "/v1/namespaces/{object.tenant_meta.namespace}/policies": {
      "patch": {
        "description": "Updates the policy.",
        "operationId": "PolicyService_UpdatePolicy",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "object.tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyServiceUpdatePolicyBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Policy"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "UpdatePolicy",
        "tags": [
          "PolicyService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/policies": {
      "get": {
        "description": "Lists all policies in a namespace.",
        "operationId": "PolicyService_ListPolicies",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListPoliciesResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListPolicies",
        "tags": [
          "PolicyService"
        ]
      },
      "post": {
        "description": "Creates a policy.",
        "operationId": "PolicyService_CreatePolicy",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyServiceCreatePolicyBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Policy"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "CreatePolicy",
        "tags": [
          "PolicyService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/policies/{uuid}": {
      "delete": {
        "description": "Deletes the policy specified by the UUID.",
        "operationId": "PolicyService_DeletePolicy",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the resource to be deleted.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Action to be executed with delete request.",
            "in": "query",
            "name": "delete_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Force will force the deletion of the resource if any\nchecks fail.",
            "in": "query",
            "name": "delete_parameters.force",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "DeletePolicy",
        "tags": [
          "PolicyService"
        ]
      },
      "get": {
        "description": "Fetches the policy identified by the UUID.",
        "operationId": "PolicyService_GetPolicy",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Policy"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetPolicy",
        "tags": [
          "PolicyService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/projects": {
      "get": {
        "description": "Lists all projects in a given namespace.",
        "operationId": "ProjectService_ListProjects",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListProjectsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListProjects",
        "tags": [
          "ProjectService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/projects/{uuid}": {
      "delete": {
        "description": "Deletes a project specified by its UUID.",
        "operationId": "ProjectService_DeleteProject",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the resource to be deleted.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Action to be executed with delete request.",
            "in": "query",
            "name": "delete_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Force will force the deletion of the resource if any\nchecks fail.",
            "in": "query",
            "name": "delete_parameters.force",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "DeleteProject",
        "tags": [
          "ProjectService"
        ]
      },
      "get": {
        "description": "Fetches comprehensive information about a project identified by a given\nUUID.",
        "operationId": "ProjectService_GetProject",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Project"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetProject",
        "tags": [
          "ProjectService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/sbom-export": {
      "post": {
        "description": "Creates an SBOM export.",
        "operationId": "SBOMExportService_CreateSBOMExport",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SBOMExportServiceCreateSBOMExportBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ExportedSBOM"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "CreateSBOMExport",
        "tags": [
          "SBOMExportService"
        ]
      }
    },
    "/v1/namespaces/{object.tenant_meta.namespace}/sbom-imports": {
      "patch": {
        "description": "Updates an imported SBOM.",
        "operationId": "SBOMImportService_UpdateSBOMImport",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "object.tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SBOMImportServiceUpdateSBOMImportBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ImportedSBOM"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "UpdateSBOMImport",
        "tags": [
          "SBOMImportService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/sbom-imports": {
      "get": {
        "description": "Lists all imported SBOMS in a namespace.",
        "operationId": "SBOMImportService_ListSBOMImports",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListSBOMImportsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListSBOMImports",
        "tags": [
          "SBOMImportService"
        ]
      },
      "post": {
        "description": "Imports the given SBOM.",
        "operationId": "SBOMImportService_CreateSBOMImport",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SBOMImportServiceCreateSBOMImportBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ImportedSBOM"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "CreateSBOMImport",
        "tags": [
          "SBOMImportService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/sbom-imports/{uuid}": {
      "delete": {
        "description": "Deletes an imported SBOM specified by its UUID.",
        "operationId": "SBOMImportService_DeleteSBOMImport",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the resource to be deleted.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Action to be executed with delete request.",
            "in": "query",
            "name": "delete_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Force will force the deletion of the resource if any\nchecks fail.",
            "in": "query",
            "name": "delete_parameters.force",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "DeleteSBOMImport",
        "tags": [
          "SBOMImportService"
        ]
      },
      "get": {
        "description": "Fetches an imported SBOM specified by its UUID.",
        "operationId": "SBOMImportService_GetSBOMImport",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ImportedSBOM"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetSBOMImport",
        "tags": [
          "SBOMImportService"
        ]
      }
    },
    "/v1/namespaces/{object.tenant_meta.namespace}/scan-profiles": {
      "patch": {
        "operationId": "ScanProfileService_UpdateScanProfile",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "object.tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanProfileServiceUpdateScanProfileBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ScanProfile"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "UpdateScanProfile updates a specified Toolchain profile.",
        "tags": [
          "ScanProfileService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/scan-profiles": {
      "get": {
        "operationId": "ScanProfileService_ListScanProfiles",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListScanProfilesResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListScanProfiles returns a list of toolchain profiles in a specified\nnamespace.",
        "tags": [
          "ScanProfileService"
        ]
      },
      "post": {
        "operationId": "ScanProfileService_CreateScanProfile",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanProfileServiceCreateScanProfileBody"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ScanProfile"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "CreateScanProfile creates a toolchain profile.",
        "tags": [
          "ScanProfileService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/scan-profiles/{uuid}": {
      "delete": {
        "operationId": "ScanProfileService_DeleteScanProfile",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the resource to be deleted.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Action to be executed with delete request.",
            "in": "query",
            "name": "delete_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Force will force the deletion of the resource if any\nchecks fail.",
            "in": "query",
            "name": "delete_parameters.force",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "DeleteScanProfile deletes a toolchain profile specified by its UUID.",
        "tags": [
          "ScanProfileService"
        ]
      },
      "get": {
        "operationId": "ScanProfileService_GetScanProfile",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ScanProfile"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetScanProfile returns a toolchain profile specified by its UUID.",
        "tags": [
          "ScanProfileService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/scan-results": {
      "get": {
        "description": "List scan results based on the specified list parameters.",
        "operationId": "ScanResultService_ListScanResults",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "String of conditions to filter resources by.\nFilters may include any attribute along with the following operators:\n\"==\", \"!=\", \"\u003e\", \"\u003e=\", \"\u003c\", \"\u003c=\", \"Contains\", \"In\", \"Matches\", and\n\"Exists\". The logical operators \"And\" and \"Or\" are also supported.\nExpressions may be combined and grouped with parentheses.\n\nExamples:\n\"spec.value == 5\",\n\"spec.value in [\"a\", \"b\", \"c\"]\",\n\"(meta.name == \"xyz\" and \"spec.value in [\"a\",\"b\"]) or (spec.value ==\n\"c\")\".",
            "in": "query",
            "name": "list_parameters.filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Set the page token to start from.\nUse page tokens to page through list results or list specific pages.",
            "in": "query",
            "name": "list_parameters.page_token",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Set the page size to limit the number of results returned.\nDefault: 100. Max: 500.",
            "in": "query",
            "name": "list_parameters.page_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Action to be executed with a request. Not supported for all endpoints.",
            "in": "query",
            "name": "list_parameters.action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "list_parameters.mask",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Get data from any child namespaces as well.",
            "in": "query",
            "name": "list_parameters.traverse",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Field to sort objects by, for example, meta.name.",
            "in": "query",
            "name": "list_parameters.sort.path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order. Default: ASC.",
            "in": "query",
            "name": "list_parameters.sort.order",
            "schema": {
              "default": "SORT_ENTRY_ORDER_UNSPECIFIED",
              "enum": [
                "SORT_ENTRY_ORDER_UNSPECIFIED",
                "SORT_ENTRY_ORDER_ASC",
                "SORT_ENTRY_ORDER_DESC"
              ],
              "type": "string"
            }
          },
          {
            "description": "Return the number of objects matching the given list parameters.\nIf count is set to true, the response is a CountResponse.\nCan be used together with filter and traverse.",
            "in": "query",
            "name": "list_parameters.count",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Group the objects based on this field.\nIf there are multiple fields then the objects are grouped\nbased on the uniqueness of all fields.\nSupports composite paths.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUID of each object in each group as specified by\naggregation_paths.",
            "in": "query",
            "name": "list_parameters.group.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "List of fields for which we want the unique count.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_count_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields for which we want the unique values.\nSupports arrays and maps.",
            "in": "query",
            "name": "list_parameters.group.unique_value_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only return objects from PR scans that match this context id.",
            "in": "query",
            "name": "list_parameters.ci_run_uuid",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page ID to retrieve.",
            "in": "query",
            "name": "list_parameters.page_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Group the objects based on this time field,\nfor example, meta.create_time.",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_paths",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return the UUIDs of the objects in each group.",
            "in": "query",
            "name": "list_parameters.group_by_time.show_aggregation_uuids",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Interval unit by which the objects should be grouped.",
            "in": "query",
            "name": "list_parameters.group_by_time.interval",
            "schema": {
              "default": "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
              "enum": [
                "GROUP_BY_TIME_INTERVAL_UNSPECIFIED",
                "GROUP_BY_TIME_INTERVAL_YEAR",
                "GROUP_BY_TIME_INTERVAL_QUARTER",
                "GROUP_BY_TIME_INTERVAL_MONTH",
                "GROUP_BY_TIME_INTERVAL_WEEK",
                "GROUP_BY_TIME_INTERVAL_DAY",
                "GROUP_BY_TIME_INTERVAL_HOUR",
                "GROUP_BY_TIME_INTERVAL_MINUTE",
                "GROUP_BY_TIME_INTERVAL_SECOND"
              ],
              "type": "string"
            }
          },
          {
            "description": "Size of the time interval to group the objects by,\nfor example, to group objects by 2-week intervals, set interval\nto GROUP_BY_TIME_INTERVAL_WEEK and group_size to 2.",
            "in": "query",
            "name": "list_parameters.group_by_time.group_size",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Beginning of the time period to group objects.\nDefaults to the beginning of time.",
            "in": "query",
            "name": "list_parameters.group_by_time.start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "End of the time period to group objects.\nDefaults to the current time.",
            "in": "query",
            "name": "list_parameters.group_by_time.end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "The mode determines how the matching objects are counted\nin the produced time-series. Values allowed are:\ncount (default) : is the number of items matching in every interval.\nsum: is the total number of items matching since the beginning of the\naggregation time.",
            "in": "query",
            "name": "list_parameters.group_by_time.mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggregation_field is a field on the matched objects that we want to\nperform some operation in each interval (example : min, max, avg)",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_value_field",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The aggreation_operator is the operator that we should use for the\naggregation. Allowed values are: min, max, sum, avg",
            "in": "query",
            "name": "list_parameters.group_by_time.aggregation_operator",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If true, the results will not be paginated and\nonly the first page will be returned. The order\nof the results is not guaranteed.",
            "in": "query",
            "name": "list_parameters.disable_pagination",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ListScanResultsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "ListScanResults",
        "tags": [
          "ScanResultService"
        ]
      }
    },
    "/v1/namespaces/{tenant_meta.namespace}/scan-results/{uuid}": {
      "get": {
        "description": "Return a specified scan result.",
        "operationId": "ScanResultService_GetScanResult",
        "parameters": [
          {
            "description": "Namespaces are a way to organize organizational units into virtual\ngroupings of resources. Namespaces must be a fully qualified name,\nfor example, the child namespace of namespace \"endor.prod\" called \"app\"\nis called \"endor.prod.app\".",
            "in": "path",
            "name": "tenant_meta.namespace",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-endor-name": "Namespace"
          },
          {
            "description": "The UUID of the requested resource.",
            "in": "path",
            "name": "uuid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to return (all fields are returned by default).",
            "in": "query",
            "name": "get_parameters.mask",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1ScanResult"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/googlerpcStatus"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "GetScanResult",
        "tags": [
          "ScanResultService"
        ]
      }
    }
  },
  "servers": [
    {
      "description": "US (default)",
      "url": "https://api.endorlabs.com"
    },
    {
      "description": "EU (data residency)",
      "url": "https://api.eu.endorlabs.com"
    }
  ],
  "tags": [
    {
      "name": "APIKeyService"
    },
    {
      "name": "AuditLogService"
    },
    {
      "name": "AuthenticationLogService"
    },
    {
      "name": "DependencyMetadataService"
    },
    {
      "name": "FindingService"
    },
    {
      "name": "NamespaceService"
    },
    {
      "name": "PackageManagerService"
    },
    {
      "name": "PackageVersionService"
    },
    {
      "name": "PolicyService"
    },
    {
      "name": "ProjectService"
    },
    {
      "name": "SBOMExportService"
    },
    {
      "name": "SBOMImportService"
    },
    {
      "name": "ScanProfileService"
    },
    {
      "name": "ScanResultService"
    }
  ]
}