-- Copyright © FINN.no AS, Inc. All rights reserved.
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
module UnleashSpecificationJsonTypes where
import Data.Aeson (FromJSON, ToJSON)
import Data.Text (Text)
import GHC.Generics (Generic)
import Unleash.Internal.JsonTypes (Context, Features, VariantResponse)
data Specification = Specification
{ name :: Text,
state :: Features,
tests :: Maybe [Test],
variantTests :: Maybe [VariantTest]
}
deriving stock (Eq, Show, Generic)
deriving anyclass (FromJSON, ToJSON)
data Test = Test
{ description :: Text,
context :: Context,
toggleName :: Text,
expectedResult :: Bool
}
deriving stock (Eq, Show, Generic)
deriving anyclass (FromJSON, ToJSON)
data VariantTest = VariantTest
{ description :: Text,
context :: Context,
toggleName :: Text,
expectedResult :: VariantResponse
}
deriving stock (Eq, Show, Generic)
deriving anyclass (FromJSON, ToJSON)