---
title: "CreatePackageFirewallLog"
method: POST
path: "/v1/namespaces/{tenant_meta.namespace}/package-firewall-logs"
tags: ["PackageFirewallLogService"]
---

# CreatePackageFirewallLog

`POST /v1/namespaces/{tenant_meta.namespace}/package-firewall-logs`

## Request

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

Creates a package firewall log.

## Path parameters

- `tenant_meta.namespace` string, required

## Request body

- PackageFirewallLogServiceCreatePackageFirewallLogBody: PackageFirewallLog represents a package firewall audit event recording the action taken and the reason that triggered it.
  - `meta` V1Meta, required: Common fields for all Endor Labs resources.
    - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
    - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
    - `description` string: Resource description. Must be less than 1024 bytes.
    - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
      - `data` string[]
      - `search_score` number, float: search_score is the score of the resource for search. Internal use only.
      - `tenant` string
      - `will_be_deleted_at` string, date-time: Time that the resource will be deleted.
    - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
    - `name` string, required: Resource name. Must be 63 characters or less.
    - `parent_kind` string: Parent object resource kind, for example, Project.
    - `parent_uuid` string: Parent object UUID.
    - `references` object: Map of objects referenced in a query API.
    - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
    - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
    - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `version` string: Message version.
  - `spec` V1PackageFirewallLogSpec, required
    - `action` 'PACKAGE_FIREWALL_ACTION_UNSPECIFIED' | 'PACKAGE_FIREWALL_ACTION_BLOCK' | 'PACKAGE_FIREWALL_ACTION_WARN' | 'PACKAGE_FIREWALL_ACTION_CURATED': PackageFirewallAction defines how the package firewall responds when a check is triggered. Used in both configuration (what to do) and audit logs (what was done). - PACKAGE_FIREWALL_ACTION_BLOCK: Block the request and return HTTP 403. - PACKAGE_FIREWALL_ACTION_WARN: Log a warning audit event and allow the request to proceed. - PACKAGE_FIREWALL_ACTION_CURATED: One or more versions were removed from the package metadata response as part of package curation. The package manager resolves to the best remaining safe version without seeing the curated-out versions.
    - `action_at` string, date-time: Timestamp when the firewall action (block or warn) occurred.
    - `api_key_id` string: API key ID used for the request (for audit purposes).
    - `api_key_name` string
    - `block_reason` 'BLOCK_REASON_UNSPECIFIED' | 'BLOCK_REASON_MALWARE_DETECTED' | 'BLOCK_REASON_MIN_AGE_NOT_MET': BlockReason represents the reason why a package was blocked. Deprecated: use PackageFirewallLog.Reason instead.
    - `blocked_at` string, date-time: Deprecated: use action_at instead.
    - `configured_fail_closed` boolean: Configured failure behavior at evaluation time (populated only when reason is POLICY_NOT_EVALUATED).
    - `cvss_severity_level` 'CVSS_SEVERITY_LEVEL_UNSPECIFIED' | 'CVSS_SEVERITY_LEVEL_NONE' | 'CVSS_SEVERITY_LEVEL_LOW' | 'CVSS_SEVERITY_LEVEL_MEDIUM' | 'CVSS_SEVERITY_LEVEL_HIGH' | 'CVSS_SEVERITY_LEVEL_CRITICAL': Common severity level enum used across different CVSS versions.
    - `cvss_severity_threshold` 'CVSS_SEVERITY_LEVEL_UNSPECIFIED' | 'CVSS_SEVERITY_LEVEL_NONE' | 'CVSS_SEVERITY_LEVEL_LOW' | 'CVSS_SEVERITY_LEVEL_MEDIUM' | 'CVSS_SEVERITY_LEVEL_HIGH' | 'CVSS_SEVERITY_LEVEL_CRITICAL': Common severity level enum used across different CVSS versions.
    - `cvss_vuln_uuid` string: UUID of the Vuln object for the highest-severity vulnerability detected (populated only when reason is CVSS_SEVERITY_DETECTED).
    - `ecosystem` 'ECOSYSTEM_UNSPECIFIED' | 'ECOSYSTEM_GO' | 'ECOSYSTEM_MAVEN' | 'ECOSYSTEM_PYPI' | 'ECOSYSTEM_CARGO' | 'ECOSYSTEM_NPM' | 'ECOSYSTEM_GEM' | 'ECOSYSTEM_NUGET' | 'ECOSYSTEM_PACKAGIST' | 'ECOSYSTEM_SBOM' | 'ECOSYSTEM_RPM' | 'ECOSYSTEM_DEBIAN' | 'ECOSYSTEM_GITHUB_ACTION' | 'ECOSYSTEM_COCOAPOD' | 'ECOSYSTEM_APK' | 'ECOSYSTEM_CONTAINER' | 'ECOSYSTEM_HUGGING_FACE' | 'ECOSYSTEM_C' | 'ECOSYSTEM_GIT' | 'ECOSYSTEM_AI_MODEL' | 'ECOSYSTEM_SWIFT' | 'ECOSYSTEM_CONAN' | 'ECOSYSTEM_VSCODE', required: - ECOSYSTEM_GO: GoLang. - ECOSYSTEM_MAVEN: Maven. - ECOSYSTEM_PYPI: Python. - ECOSYSTEM_CARGO: Rust. - ECOSYSTEM_NPM: Javascript. - ECOSYSTEM_GEM: Ruby. - ECOSYSTEM_NUGET: Dotnet. - ECOSYSTEM_PACKAGIST: PHP. - ECOSYSTEM_SBOM: SBOMs. - ECOSYSTEM_RPM: RPM. - ECOSYSTEM_DEBIAN: Debian. - ECOSYSTEM_GITHUB_ACTION: GitHub Actions. - ECOSYSTEM_COCOAPOD: Cocoapods. - ECOSYSTEM_APK: APK (alpine et.al). - ECOSYSTEM_CONTAINER: Containers. - ECOSYSTEM_HUGGING_FACE: Hugging Face. - ECOSYSTEM_C: C/C++. - ECOSYSTEM_GIT: ecosystem GIT for GIT repository dependencies. This can be used for package name of the resolved dependencies when a given repository has dependencies to other GIT repositories. Currently we use this to represent vulnerabilities for the given GIT repository. ex: git submodules, C/C++ dependencies. - ECOSYSTEM_AI_MODEL: AI models. - ECOSYSTEM_SWIFT: Ecosystem Swift consists of native Swift packages, which are defined using the Package.swift manifest file and managed by the Swift Package Manager. There is a separate ecosystem for Cocoapod packages called ECOSYSTEM_COCOAPOD, which is an alternative package manager for Swift packages. - ECOSYSTEM_CONAN: Ecosystem Conan for C/C++ packages managed by the Conan 2.x package manager. - ECOSYSTEM_VSCODE: VS Code editor extensions, distributed via the Microsoft Visual Studio Marketplace.
    - `failure_cause` 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UNSPECIFIED' | 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_POLICY_DATASTORE_UNAVAILABLE' | 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_MALWARE_DATA_UNAVAILABLE' | 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_POLICY_EVALUATION_ERROR' | 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UPSTREAM_METADATA_UNAVAILABLE' | 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UPSTREAM_METADATA_NOT_FOUND': PackageFirewallCheckFailureCause identifies why a policy decision was unavailable. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UNSPECIFIED: No safe failure cause was recorded. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_POLICY_DATASTORE_UNAVAILABLE: Firewall configuration could not be read from the policy datastore. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_MALWARE_DATA_UNAVAILABLE: Malware status could not be read for the requested package version. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_POLICY_EVALUATION_ERROR: A configured policy check could not complete its evaluation or query. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UPSTREAM_METADATA_UNAVAILABLE: Supporting upstream package metadata could not be fetched or transformed. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UPSTREAM_METADATA_NOT_FOUND: Supporting upstream package metadata did not contain the requested package or version.
    - `filtered_versions` PackageFirewallLogFilteredVersion[]: Per-version detail for MetadataAllVersions curation events. Populated when package_curation_enabled = true and one or more versions were suppressed from the metadata response because their per-policy action is BLOCK. Empty for all other request types.
      - `malware_uuid` string: UUID of detected malware (populated when reason = MALWARE_DETECTED).
      - `min_age_hours` integer: Configured minimum age threshold in hours, snapshotted from PackageFirewallConfig.min_age_hours at suppression time (populated when reason = MIN_AGE_NOT_MET). Combine with the parent Spec's action_at and this version's package_age_hours to derive when the version becomes eligible.
      - `package_age_hours` integer: Age of package in hours at suppression time (populated when reason = MIN_AGE_NOT_MET).
      - `reason` 'PACKAGE_FIREWALL_REASON_UNSPECIFIED' | 'PACKAGE_FIREWALL_REASON_MALWARE_DETECTED' | 'PACKAGE_FIREWALL_REASON_MIN_AGE_NOT_MET' | 'PACKAGE_FIREWALL_REASON_RESTRICTED_LICENSE' | 'PACKAGE_FIREWALL_REASON_CVSS_SEVERITY_DETECTED' | 'PACKAGE_FIREWALL_REASON_VERSIONS_CURATED' | 'PACKAGE_FIREWALL_REASON_POLICY_NOT_EVALUATED': PackageFirewallReason represents the check that triggered the firewall event. - PACKAGE_FIREWALL_REASON_MALWARE_DETECTED: Malware was detected in the requested package version. - PACKAGE_FIREWALL_REASON_MIN_AGE_NOT_MET: The requested package version does not meet the configured minimum age. - PACKAGE_FIREWALL_REASON_RESTRICTED_LICENSE: The requested package version has a license that is on the restricted list. - PACKAGE_FIREWALL_REASON_CVSS_SEVERITY_DETECTED: The requested package version has a CVSS vulnerability meeting or exceeding the configured severity threshold. - PACKAGE_FIREWALL_REASON_VERSIONS_CURATED: One or more versions were removed from the package metadata response as part of package curation. See PackageFirewallLog.Spec.filtered_versions for per-version detail. - PACKAGE_FIREWALL_REASON_POLICY_NOT_EVALUATED: The configured policy could not produce a decision for the package request.
      - `version` string: Version string that was suppressed from the metadata response.
    - `malware_uuid` string: UUID of detected malware (populated only when reason is MALWARE_DETECTED).
    - `min_age_hours` integer: Configured minimum age threshold in hours, snapshotted from PackageFirewallConfig.min_age_hours at evaluation time (populated only when reason is MIN_AGE_NOT_MET). Combine with action_at and package_age_hours to derive when the package becomes eligible.
    - `package_age_hours` integer: Age of package in hours (populated only when reason is MIN_AGE_NOT_MET).
    - `package_license` string: License of the package (populated only when reason is RESTRICTED_LICENSE).
    - `package_name` string, required: Name of the blocked package.
    - `package_version` string: Version of the blocked package (if available).
    - `reason` 'PACKAGE_FIREWALL_REASON_UNSPECIFIED' | 'PACKAGE_FIREWALL_REASON_MALWARE_DETECTED' | 'PACKAGE_FIREWALL_REASON_MIN_AGE_NOT_MET' | 'PACKAGE_FIREWALL_REASON_RESTRICTED_LICENSE' | 'PACKAGE_FIREWALL_REASON_CVSS_SEVERITY_DETECTED' | 'PACKAGE_FIREWALL_REASON_VERSIONS_CURATED' | 'PACKAGE_FIREWALL_REASON_POLICY_NOT_EVALUATED': PackageFirewallReason represents the check that triggered the firewall event. - PACKAGE_FIREWALL_REASON_MALWARE_DETECTED: Malware was detected in the requested package version. - PACKAGE_FIREWALL_REASON_MIN_AGE_NOT_MET: The requested package version does not meet the configured minimum age. - PACKAGE_FIREWALL_REASON_RESTRICTED_LICENSE: The requested package version has a license that is on the restricted list. - PACKAGE_FIREWALL_REASON_CVSS_SEVERITY_DETECTED: The requested package version has a CVSS vulnerability meeting or exceeding the configured severity threshold. - PACKAGE_FIREWALL_REASON_VERSIONS_CURATED: One or more versions were removed from the package metadata response as part of package curation. See PackageFirewallLog.Spec.filtered_versions for per-version detail. - PACKAGE_FIREWALL_REASON_POLICY_NOT_EVALUATED: The configured policy could not produce a decision for the package request.
    - `remote_address` string: The remote IP address that made the request.
    - `request_type` string: Type of request that was blocked (metadata, download, etc.).
    - `request_uri` string: URI of the request that was blocked.
    - `restricted_license` string: Configured restricted license string that matched and caused this event, snapshotted from PackageFirewallConfig.restricted_licenses at evaluation time (populated only when reason is RESTRICTED_LICENSE).
    - `user` string: Client-supplied user attribution decoded from the Basic-auth username (e.g. user/machine); free-form and unverified.
  - `tenant_meta` object: Namespace of the package firewall log.
  - `uuid` string: The UUID of the package firewall log.

## Response `200`

A successful response.

- V1PackageFirewallLog: PackageFirewallLog represents a package firewall audit event recording the action taken and the reason that triggered it.
  - `meta` V1Meta, required: Common fields for all Endor Labs resources.
    - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
    - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
    - `description` string: Resource description. Must be less than 1024 bytes.
    - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
      - `data` string[]
      - `search_score` number, float: search_score is the score of the resource for search. Internal use only.
      - `tenant` string
      - `will_be_deleted_at` string, date-time: Time that the resource will be deleted.
    - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
    - `name` string, required: Resource name. Must be 63 characters or less.
    - `parent_kind` string: Parent object resource kind, for example, Project.
    - `parent_uuid` string: Parent object UUID.
    - `references` object: Map of objects referenced in a query API.
    - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
    - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
    - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `version` string: Message version.
  - `spec` V1PackageFirewallLogSpec, required
    - `action` 'PACKAGE_FIREWALL_ACTION_UNSPECIFIED' | 'PACKAGE_FIREWALL_ACTION_BLOCK' | 'PACKAGE_FIREWALL_ACTION_WARN' | 'PACKAGE_FIREWALL_ACTION_CURATED': PackageFirewallAction defines how the package firewall responds when a check is triggered. Used in both configuration (what to do) and audit logs (what was done). - PACKAGE_FIREWALL_ACTION_BLOCK: Block the request and return HTTP 403. - PACKAGE_FIREWALL_ACTION_WARN: Log a warning audit event and allow the request to proceed. - PACKAGE_FIREWALL_ACTION_CURATED: One or more versions were removed from the package metadata response as part of package curation. The package manager resolves to the best remaining safe version without seeing the curated-out versions.
    - `action_at` string, date-time: Timestamp when the firewall action (block or warn) occurred.
    - `api_key_id` string: API key ID used for the request (for audit purposes).
    - `api_key_name` string
    - `block_reason` 'BLOCK_REASON_UNSPECIFIED' | 'BLOCK_REASON_MALWARE_DETECTED' | 'BLOCK_REASON_MIN_AGE_NOT_MET': BlockReason represents the reason why a package was blocked. Deprecated: use PackageFirewallLog.Reason instead.
    - `blocked_at` string, date-time: Deprecated: use action_at instead.
    - `configured_fail_closed` boolean: Configured failure behavior at evaluation time (populated only when reason is POLICY_NOT_EVALUATED).
    - `cvss_severity_level` 'CVSS_SEVERITY_LEVEL_UNSPECIFIED' | 'CVSS_SEVERITY_LEVEL_NONE' | 'CVSS_SEVERITY_LEVEL_LOW' | 'CVSS_SEVERITY_LEVEL_MEDIUM' | 'CVSS_SEVERITY_LEVEL_HIGH' | 'CVSS_SEVERITY_LEVEL_CRITICAL': Common severity level enum used across different CVSS versions.
    - `cvss_severity_threshold` 'CVSS_SEVERITY_LEVEL_UNSPECIFIED' | 'CVSS_SEVERITY_LEVEL_NONE' | 'CVSS_SEVERITY_LEVEL_LOW' | 'CVSS_SEVERITY_LEVEL_MEDIUM' | 'CVSS_SEVERITY_LEVEL_HIGH' | 'CVSS_SEVERITY_LEVEL_CRITICAL': Common severity level enum used across different CVSS versions.
    - `cvss_vuln_uuid` string: UUID of the Vuln object for the highest-severity vulnerability detected (populated only when reason is CVSS_SEVERITY_DETECTED).
    - `ecosystem` 'ECOSYSTEM_UNSPECIFIED' | 'ECOSYSTEM_GO' | 'ECOSYSTEM_MAVEN' | 'ECOSYSTEM_PYPI' | 'ECOSYSTEM_CARGO' | 'ECOSYSTEM_NPM' | 'ECOSYSTEM_GEM' | 'ECOSYSTEM_NUGET' | 'ECOSYSTEM_PACKAGIST' | 'ECOSYSTEM_SBOM' | 'ECOSYSTEM_RPM' | 'ECOSYSTEM_DEBIAN' | 'ECOSYSTEM_GITHUB_ACTION' | 'ECOSYSTEM_COCOAPOD' | 'ECOSYSTEM_APK' | 'ECOSYSTEM_CONTAINER' | 'ECOSYSTEM_HUGGING_FACE' | 'ECOSYSTEM_C' | 'ECOSYSTEM_GIT' | 'ECOSYSTEM_AI_MODEL' | 'ECOSYSTEM_SWIFT' | 'ECOSYSTEM_CONAN' | 'ECOSYSTEM_VSCODE', required: - ECOSYSTEM_GO: GoLang. - ECOSYSTEM_MAVEN: Maven. - ECOSYSTEM_PYPI: Python. - ECOSYSTEM_CARGO: Rust. - ECOSYSTEM_NPM: Javascript. - ECOSYSTEM_GEM: Ruby. - ECOSYSTEM_NUGET: Dotnet. - ECOSYSTEM_PACKAGIST: PHP. - ECOSYSTEM_SBOM: SBOMs. - ECOSYSTEM_RPM: RPM. - ECOSYSTEM_DEBIAN: Debian. - ECOSYSTEM_GITHUB_ACTION: GitHub Actions. - ECOSYSTEM_COCOAPOD: Cocoapods. - ECOSYSTEM_APK: APK (alpine et.al). - ECOSYSTEM_CONTAINER: Containers. - ECOSYSTEM_HUGGING_FACE: Hugging Face. - ECOSYSTEM_C: C/C++. - ECOSYSTEM_GIT: ecosystem GIT for GIT repository dependencies. This can be used for package name of the resolved dependencies when a given repository has dependencies to other GIT repositories. Currently we use this to represent vulnerabilities for the given GIT repository. ex: git submodules, C/C++ dependencies. - ECOSYSTEM_AI_MODEL: AI models. - ECOSYSTEM_SWIFT: Ecosystem Swift consists of native Swift packages, which are defined using the Package.swift manifest file and managed by the Swift Package Manager. There is a separate ecosystem for Cocoapod packages called ECOSYSTEM_COCOAPOD, which is an alternative package manager for Swift packages. - ECOSYSTEM_CONAN: Ecosystem Conan for C/C++ packages managed by the Conan 2.x package manager. - ECOSYSTEM_VSCODE: VS Code editor extensions, distributed via the Microsoft Visual Studio Marketplace.
    - `failure_cause` 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UNSPECIFIED' | 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_POLICY_DATASTORE_UNAVAILABLE' | 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_MALWARE_DATA_UNAVAILABLE' | 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_POLICY_EVALUATION_ERROR' | 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UPSTREAM_METADATA_UNAVAILABLE' | 'PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UPSTREAM_METADATA_NOT_FOUND': PackageFirewallCheckFailureCause identifies why a policy decision was unavailable. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UNSPECIFIED: No safe failure cause was recorded. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_POLICY_DATASTORE_UNAVAILABLE: Firewall configuration could not be read from the policy datastore. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_MALWARE_DATA_UNAVAILABLE: Malware status could not be read for the requested package version. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_POLICY_EVALUATION_ERROR: A configured policy check could not complete its evaluation or query. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UPSTREAM_METADATA_UNAVAILABLE: Supporting upstream package metadata could not be fetched or transformed. - PACKAGE_FIREWALL_CHECK_FAILURE_CAUSE_UPSTREAM_METADATA_NOT_FOUND: Supporting upstream package metadata did not contain the requested package or version.
    - `filtered_versions` PackageFirewallLogFilteredVersion[]: Per-version detail for MetadataAllVersions curation events. Populated when package_curation_enabled = true and one or more versions were suppressed from the metadata response because their per-policy action is BLOCK. Empty for all other request types.
      - `malware_uuid` string: UUID of detected malware (populated when reason = MALWARE_DETECTED).
      - `min_age_hours` integer: Configured minimum age threshold in hours, snapshotted from PackageFirewallConfig.min_age_hours at suppression time (populated when reason = MIN_AGE_NOT_MET). Combine with the parent Spec's action_at and this version's package_age_hours to derive when the version becomes eligible.
      - `package_age_hours` integer: Age of package in hours at suppression time (populated when reason = MIN_AGE_NOT_MET).
      - `reason` 'PACKAGE_FIREWALL_REASON_UNSPECIFIED' | 'PACKAGE_FIREWALL_REASON_MALWARE_DETECTED' | 'PACKAGE_FIREWALL_REASON_MIN_AGE_NOT_MET' | 'PACKAGE_FIREWALL_REASON_RESTRICTED_LICENSE' | 'PACKAGE_FIREWALL_REASON_CVSS_SEVERITY_DETECTED' | 'PACKAGE_FIREWALL_REASON_VERSIONS_CURATED' | 'PACKAGE_FIREWALL_REASON_POLICY_NOT_EVALUATED': PackageFirewallReason represents the check that triggered the firewall event. - PACKAGE_FIREWALL_REASON_MALWARE_DETECTED: Malware was detected in the requested package version. - PACKAGE_FIREWALL_REASON_MIN_AGE_NOT_MET: The requested package version does not meet the configured minimum age. - PACKAGE_FIREWALL_REASON_RESTRICTED_LICENSE: The requested package version has a license that is on the restricted list. - PACKAGE_FIREWALL_REASON_CVSS_SEVERITY_DETECTED: The requested package version has a CVSS vulnerability meeting or exceeding the configured severity threshold. - PACKAGE_FIREWALL_REASON_VERSIONS_CURATED: One or more versions were removed from the package metadata response as part of package curation. See PackageFirewallLog.Spec.filtered_versions for per-version detail. - PACKAGE_FIREWALL_REASON_POLICY_NOT_EVALUATED: The configured policy could not produce a decision for the package request.
      - `version` string: Version string that was suppressed from the metadata response.
    - `malware_uuid` string: UUID of detected malware (populated only when reason is MALWARE_DETECTED).
    - `min_age_hours` integer: Configured minimum age threshold in hours, snapshotted from PackageFirewallConfig.min_age_hours at evaluation time (populated only when reason is MIN_AGE_NOT_MET). Combine with action_at and package_age_hours to derive when the package becomes eligible.
    - `package_age_hours` integer: Age of package in hours (populated only when reason is MIN_AGE_NOT_MET).
    - `package_license` string: License of the package (populated only when reason is RESTRICTED_LICENSE).
    - `package_name` string, required: Name of the blocked package.
    - `package_version` string: Version of the blocked package (if available).
    - `reason` 'PACKAGE_FIREWALL_REASON_UNSPECIFIED' | 'PACKAGE_FIREWALL_REASON_MALWARE_DETECTED' | 'PACKAGE_FIREWALL_REASON_MIN_AGE_NOT_MET' | 'PACKAGE_FIREWALL_REASON_RESTRICTED_LICENSE' | 'PACKAGE_FIREWALL_REASON_CVSS_SEVERITY_DETECTED' | 'PACKAGE_FIREWALL_REASON_VERSIONS_CURATED' | 'PACKAGE_FIREWALL_REASON_POLICY_NOT_EVALUATED': PackageFirewallReason represents the check that triggered the firewall event. - PACKAGE_FIREWALL_REASON_MALWARE_DETECTED: Malware was detected in the requested package version. - PACKAGE_FIREWALL_REASON_MIN_AGE_NOT_MET: The requested package version does not meet the configured minimum age. - PACKAGE_FIREWALL_REASON_RESTRICTED_LICENSE: The requested package version has a license that is on the restricted list. - PACKAGE_FIREWALL_REASON_CVSS_SEVERITY_DETECTED: The requested package version has a CVSS vulnerability meeting or exceeding the configured severity threshold. - PACKAGE_FIREWALL_REASON_VERSIONS_CURATED: One or more versions were removed from the package metadata response as part of package curation. See PackageFirewallLog.Spec.filtered_versions for per-version detail. - PACKAGE_FIREWALL_REASON_POLICY_NOT_EVALUATED: The configured policy could not produce a decision for the package request.
    - `remote_address` string: The remote IP address that made the request.
    - `request_type` string: Type of request that was blocked (metadata, download, etc.).
    - `request_uri` string: URI of the request that was blocked.
    - `restricted_license` string: Configured restricted license string that matched and caused this event, snapshotted from PackageFirewallConfig.restricted_licenses at evaluation time (populated only when reason is RESTRICTED_LICENSE).
    - `user` string: Client-supplied user attribution decoded from the Basic-auth username (e.g. user/machine); free-form and unverified.
  - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
    - `namespace` string, required: Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
  - `uuid` string: The UUID of the package firewall log.

## Other responses

- `default`: An unexpected error response.

## Changes

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

[Operation history](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/changes/v1/namespaces/:tenant_meta.namespace/package-firewall-logs/post.md)

---

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