hydra-ext-0.18.0: src/main/haskell/Hydra/Ext/Osv/Schema.hs
-- Note: this is an automatically generated file. Do not edit.
-- | See https://ossf.github.io/osv-schema
module Hydra.Ext.Osv.Schema where
import qualified Hydra.Core.Model as Model
import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)
import qualified Data.Scientific as Sci
import Data.Void
-- | A person or entity credited with discovering, fixing, or reporting a vulnerability
data Credited =
Credited {
creditedName :: String,
creditedContact :: (Maybe [Url])}
deriving (Eq, Ord, Read, Show)
_Credited = Model.Name "hydra.ext.osv.schema.Credited"
_Credited_name = Model.Name "name"
_Credited_contact = Model.Name "contact"
-- | One of a limited set of defined ecosystems, currently Go, npm, OSS-Fuzz, PyPI, RubyGems, crates.io, Packagist, Maven, NuGet, Linux, Debian, Hex, Android, GitHub Actions, or Pub
newtype Ecosystem =
Ecosystem {
unEcosystem :: String}
deriving (Eq, Ord, Read, Show)
_Ecosystem = Model.Name "hydra.ext.osv.schema.Ecosystem"
-- | A single OSV vulnerability entry
data Entry =
Entry {
-- | The default value is '1.0.0', matching version 1.0 of the OSV Schema
entrySchemaVersion :: (Maybe OsvVersion),
entryId :: Id,
entryModified :: Timestamp,
entryPublished :: (Maybe Timestamp),
entryWithdrawn :: (Maybe Timestamp),
entryAliases :: (Maybe [Id]),
entryRelated :: (Maybe [Id]),
entrySummary :: (Maybe String),
entryDetails :: (Maybe Markdown),
entrySeverity :: (Maybe [Severity]),
entryAffected :: (Maybe [PackageVersions]),
entryReferences :: (Maybe [Reference]),
entryCredits :: (Maybe [Credited])}
deriving (Eq, Ord, Read, Show)
_Entry = Model.Name "hydra.ext.osv.schema.Entry"
_Entry_schemaVersion = Model.Name "schemaVersion"
_Entry_id = Model.Name "id"
_Entry_modified = Model.Name "modified"
_Entry_published = Model.Name "published"
_Entry_withdrawn = Model.Name "withdrawn"
_Entry_aliases = Model.Name "aliases"
_Entry_related = Model.Name "related"
_Entry_summary = Model.Name "summary"
_Entry_details = Model.Name "details"
_Entry_severity = Model.Name "severity"
_Entry_affected = Model.Name "affected"
_Entry_references = Model.Name "references"
_Entry_credits = Model.Name "credits"
-- | A version event marking a point in a range where a vulnerability's status changes
data Event =
EventIntroduced VersionOrZero |
EventFixed Version |
EventLastAffected Version |
EventLimit VersionOrStar
deriving (Eq, Ord, Read, Show)
_Event = Model.Name "hydra.ext.osv.schema.Event"
_Event_introduced = Model.Name "introduced"
_Event_fixed = Model.Name "fixed"
_Event_lastAffected = Model.Name "lastAffected"
_Event_limit = Model.Name "limit"
-- | A string of the format <DB>-<ENTRYID>, where DB names the database and ENTRYID is in the format used by the database. For example: OSV-2020-111, CVE-2021-3114, or GHSA-vp9c-fpxx-744v
newtype Id =
Id {
unId :: String}
deriving (Eq, Ord, Read, Show)
_Id = Model.Name "hydra.ext.osv.schema.Id"
-- | CommonMark markdown text
newtype Markdown =
Markdown {
unMarkdown :: String}
deriving (Eq, Ord, Read, Show)
_Markdown = Model.Name "hydra.ext.osv.schema.Markdown"
-- | A string which follows the SemVer 2.0.0 format, with no leading 'v' prefix
newtype OsvVersion =
OsvVersion {
unOsvVersion :: String}
deriving (Eq, Ord, Read, Show)
_OsvVersion = Model.Name "hydra.ext.osv.schema.OsvVersion"
-- | The identity of a software package within a given ecosystem
data Package =
Package {
packageEcosystem :: Ecosystem,
packageName :: String,
packagePurl :: (Maybe Url)}
deriving (Eq, Ord, Read, Show)
_Package = Model.Name "hydra.ext.osv.schema.Package"
_Package_ecosystem = Model.Name "ecosystem"
_Package_name = Model.Name "name"
_Package_purl = Model.Name "purl"
-- | The package affected by a vulnerability, along with its affected version ranges and versions
data PackageVersions =
PackageVersions {
packageVersionsPackage :: Package,
packageVersionsRanges :: (Maybe [VersionRange]),
packageVersionsVersions :: (Maybe [Version])}
deriving (Eq, Ord, Read, Show)
_PackageVersions = Model.Name "hydra.ext.osv.schema.PackageVersions"
_PackageVersions_package = Model.Name "package"
_PackageVersions_ranges = Model.Name "ranges"
_PackageVersions_versions = Model.Name "versions"
-- | A link to additional information about a vulnerability, together with its type
data Reference =
Reference {
referenceType :: ReferenceType,
referenceUrl :: Url}
deriving (Eq, Ord, Read, Show)
_Reference = Model.Name "hydra.ext.osv.schema.Reference"
_Reference_type = Model.Name "type"
_Reference_url = Model.Name "url"
-- | One of ADVISORY, ARTICLE, REPORT, FIX, GIT, PACKAGE, EVIDENCE, or WEB
newtype ReferenceType =
ReferenceType {
unReferenceType :: String}
deriving (Eq, Ord, Read, Show)
_ReferenceType = Model.Name "hydra.ext.osv.schema.ReferenceType"
-- | A severity score for a vulnerability, together with the scoring type used
data Severity =
Severity {
severityType :: SeverityType,
severityScore :: SeverityScore}
deriving (Eq, Ord, Read, Show)
_Severity = Model.Name "hydra.ext.osv.schema.Severity"
_Severity_type = Model.Name "type"
_Severity_score = Model.Name "score"
-- | The severity score value, formatted according to its severity type
newtype SeverityScore =
SeverityScore {
unSeverityScore :: String}
deriving (Eq, Ord, Read, Show)
_SeverityScore = Model.Name "hydra.ext.osv.schema.SeverityScore"
-- | The value CVSS_V3, or future supported types
newtype SeverityType =
SeverityType {
unSeverityType :: String}
deriving (Eq, Ord, Read, Show)
_SeverityType = Model.Name "hydra.ext.osv.schema.SeverityType"
-- | An RFC3339-formatted timestamp in UTC (ending in 'Z')
newtype Timestamp =
Timestamp {
unTimestamp :: String}
deriving (Eq, Ord, Read, Show)
_Timestamp = Model.Name "hydra.ext.osv.schema.Timestamp"
-- | A URL string
newtype Url =
Url {
unUrl :: String}
deriving (Eq, Ord, Read, Show)
_Url = Model.Name "hydra.ext.osv.schema.Url"
-- | A version number in an ecosystem-specific format
newtype Version =
Version {
unVersion :: String}
deriving (Eq, Ord, Read, Show)
_Version = Model.Name "hydra.ext.osv.schema.Version"
-- | An ecosystem-specific version number, or the string '*' representing infinity
newtype VersionOrStar =
VersionOrStar {
unVersionOrStar :: String}
deriving (Eq, Ord, Read, Show)
_VersionOrStar = Model.Name "hydra.ext.osv.schema.VersionOrStar"
-- | An ecosystem-specific version number, or the string '0' representing a version that sorts before any other version
newtype VersionOrZero =
VersionOrZero {
unVersionOrZero :: String}
deriving (Eq, Ord, Read, Show)
_VersionOrZero = Model.Name "hydra.ext.osv.schema.VersionOrZero"
-- | A range of affected versions, expressed as a type and an ordered list of events
data VersionRange =
VersionRange {
versionRangeType :: VersionType,
versionRangeRepo :: (Maybe Url),
versionRangeEvents :: [Event]}
deriving (Eq, Ord, Read, Show)
_VersionRange = Model.Name "hydra.ext.osv.schema.VersionRange"
_VersionRange_type = Model.Name "type"
_VersionRange_repo = Model.Name "repo"
_VersionRange_events = Model.Name "events"
-- | One of the values 'SEMVER', 'ECOSYSTEM', or 'GIT
newtype VersionType =
VersionType {
unVersionType :: String}
deriving (Eq, Ord, Read, Show)
_VersionType = Model.Name "hydra.ext.osv.schema.VersionType"