{
  "$comment": "Generated from the Buildish Release Tooling Pydantic models. Do not edit by hand; regenerate with `make schemas`.",
  "$defs": {
    "ReproducibilitySelector": {
      "additionalProperties": false,
      "description": "Signed manifest selector for one canonical local reproducibility profile.",
      "properties": {
        "profile_id": {
          "description": "Reproducibility profile identifier selected for the related artifact or source verification.",
          "minLength": 1,
          "title": "Profile Id",
          "type": "string"
        }
      },
      "required": [
        "profile_id"
      ],
      "title": "ReproducibilitySelector",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "tooling-derived"
      }
    },
    "SupplementalInventoryReference": {
      "additionalProperties": false,
      "description": "One staged supplemental inventory attachment.",
      "properties": {
        "entry_count": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of entries recorded in the related inventory, repository snapshot, or artifact collection.",
          "title": "Entry Count"
        },
        "filename": {
          "description": "Artifact filename as seen in staging, manifests, or retained evidence.",
          "minLength": 1,
          "title": "Filename",
          "type": "string"
        },
        "sha512": {
          "description": "SHA-512 checksum payload associated with the related artifact.",
          "title": "Sha512",
          "type": "string"
        },
        "total_size_bytes": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Total size, in bytes, recorded for the related artifact collection or inventory.",
          "title": "Total Size Bytes"
        },
        "uri": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Canonical artifact or signature URI recorded in a Buildish manifest or verification report.",
          "title": "Uri"
        }
      },
      "required": [
        "filename",
        "sha512"
      ],
      "title": "SupplementalInventoryReference",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "tooling-derived"
      }
    }
  },
  "$id": "https://buildish.org/components/release-tooling/schemas/secondary-artifact-base.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Common fields shared across supported secondary artifact kinds.",
  "properties": {
    "artifact_id": {
      "description": "Stable identifier for one source, secondary, or emitted artifact within Buildish release tooling.",
      "minLength": 1,
      "title": "Artifact Id",
      "type": "string"
    },
    "artifact_origin": {
      "anyOf": [
        {
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Origin classification describing whether the artifact came from a source build, registry, or repository staging area.",
      "title": "Artifact Origin"
    },
    "git_commit_sha": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Git commit SHA recorded for the related artifact, manifest, or provenance block.",
      "title": "Git Commit Sha"
    },
    "inventory": {
      "anyOf": [
        {
          "$ref": "#/$defs/SupplementalInventoryReference"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Signed inventory or supplemental staging metadata associated with the related artifact."
    },
    "kind": {
      "description": "Declared artifact or report kind discriminator.",
      "title": "Kind",
      "type": "string"
    },
    "reproducibility": {
      "anyOf": [
        {
          "$ref": "#/$defs/ReproducibilitySelector"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Reproducibility policy or result block associated with the related source or secondary artifact."
    },
    "role": {
      "anyOf": [
        {
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Artifact role within the RC manifest, such as source artifact, vote-manifest supplement, or convenience artifact.",
      "title": "Role"
    }
  },
  "required": [
    "artifact_id",
    "kind"
  ],
  "title": "Buildish Release Tooling SecondaryArtifactBase",
  "type": "object",
  "x-buildish-contract": {
    "category": "emitted",
    "ownership": "tooling-derived",
    "summary": "Common base shape shared across supported secondary-artifact manifest entries."
  }
}
