hercules-ci-api-0.8.2.0: src/Hercules/API/SimpleAttribute.hs
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE StandaloneDeriving #-}
module Hercules.API.SimpleAttribute
( SimpleAttribute (..),
)
where
import Data.OpenApi qualified as O3
import Hercules.API.Prelude
import Prelude ()
-- | NOTE: Generic types must always be wrapped in a newtype, so as to avoid ambiguities in the generated schema.
data SimpleAttribute a = SimpleAttribute
{ path :: [Text],
value :: a
}
deriving (Generic, Show, Eq)
deriving anyclass (NFData, FromJSON, ToJSON)
deriving instance (ToSchema a) => ToSchema (SimpleAttribute a)
deriving instance (O3.ToSchema a) => O3.ToSchema (SimpleAttribute a)
deriving instance Functor SimpleAttribute
deriving instance Foldable SimpleAttribute
deriving instance Traversable SimpleAttribute