module Stratosphere.Evidently.Experiment.TreatmentToWeightProperty (
        TreatmentToWeightProperty(..), mkTreatmentToWeightProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data TreatmentToWeightProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html>
    TreatmentToWeightProperty {TreatmentToWeightProperty -> ()
haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html#cfn-evidently-experiment-treatmenttoweight-splitweight>
                               TreatmentToWeightProperty -> Value Integer
splitWeight :: (Value Prelude.Integer),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html#cfn-evidently-experiment-treatmenttoweight-treatment>
                               TreatmentToWeightProperty -> Value Text
treatment :: (Value Prelude.Text)}
  deriving stock (TreatmentToWeightProperty -> TreatmentToWeightProperty -> Bool
(TreatmentToWeightProperty -> TreatmentToWeightProperty -> Bool)
-> (TreatmentToWeightProperty -> TreatmentToWeightProperty -> Bool)
-> Eq TreatmentToWeightProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TreatmentToWeightProperty -> TreatmentToWeightProperty -> Bool
== :: TreatmentToWeightProperty -> TreatmentToWeightProperty -> Bool
$c/= :: TreatmentToWeightProperty -> TreatmentToWeightProperty -> Bool
/= :: TreatmentToWeightProperty -> TreatmentToWeightProperty -> Bool
Prelude.Eq, Int -> TreatmentToWeightProperty -> ShowS
[TreatmentToWeightProperty] -> ShowS
TreatmentToWeightProperty -> String
(Int -> TreatmentToWeightProperty -> ShowS)
-> (TreatmentToWeightProperty -> String)
-> ([TreatmentToWeightProperty] -> ShowS)
-> Show TreatmentToWeightProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TreatmentToWeightProperty -> ShowS
showsPrec :: Int -> TreatmentToWeightProperty -> ShowS
$cshow :: TreatmentToWeightProperty -> String
show :: TreatmentToWeightProperty -> String
$cshowList :: [TreatmentToWeightProperty] -> ShowS
showList :: [TreatmentToWeightProperty] -> ShowS
Prelude.Show)
mkTreatmentToWeightProperty ::
  Value Prelude.Integer
  -> Value Prelude.Text -> TreatmentToWeightProperty
mkTreatmentToWeightProperty :: Value Integer -> Value Text -> TreatmentToWeightProperty
mkTreatmentToWeightProperty Value Integer
splitWeight Value Text
treatment
  = TreatmentToWeightProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), splitWeight :: Value Integer
splitWeight = Value Integer
splitWeight,
       treatment :: Value Text
treatment = Value Text
treatment}
instance ToResourceProperties TreatmentToWeightProperty where
  toResourceProperties :: TreatmentToWeightProperty -> ResourceProperties
toResourceProperties TreatmentToWeightProperty {()
Value Integer
Value Text
haddock_workaround_ :: TreatmentToWeightProperty -> ()
splitWeight :: TreatmentToWeightProperty -> Value Integer
treatment :: TreatmentToWeightProperty -> Value Text
haddock_workaround_ :: ()
splitWeight :: Value Integer
treatment :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Evidently::Experiment.TreatmentToWeight",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"SplitWeight" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
splitWeight,
                       Key
"Treatment" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
treatment]}
instance JSON.ToJSON TreatmentToWeightProperty where
  toJSON :: TreatmentToWeightProperty -> Value
toJSON TreatmentToWeightProperty {()
Value Integer
Value Text
haddock_workaround_ :: TreatmentToWeightProperty -> ()
splitWeight :: TreatmentToWeightProperty -> Value Integer
treatment :: TreatmentToWeightProperty -> Value Text
haddock_workaround_ :: ()
splitWeight :: Value Integer
treatment :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"SplitWeight" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
splitWeight, Key
"Treatment" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
treatment]
instance Property "SplitWeight" TreatmentToWeightProperty where
  type PropertyType "SplitWeight" TreatmentToWeightProperty = Value Prelude.Integer
  set :: PropertyType "SplitWeight" TreatmentToWeightProperty
-> TreatmentToWeightProperty -> TreatmentToWeightProperty
set PropertyType "SplitWeight" TreatmentToWeightProperty
newValue TreatmentToWeightProperty {()
Value Integer
Value Text
haddock_workaround_ :: TreatmentToWeightProperty -> ()
splitWeight :: TreatmentToWeightProperty -> Value Integer
treatment :: TreatmentToWeightProperty -> Value Text
haddock_workaround_ :: ()
splitWeight :: Value Integer
treatment :: Value Text
..}
    = TreatmentToWeightProperty {splitWeight :: Value Integer
splitWeight = PropertyType "SplitWeight" TreatmentToWeightProperty
Value Integer
newValue, ()
Value Text
haddock_workaround_ :: ()
treatment :: Value Text
haddock_workaround_ :: ()
treatment :: Value Text
..}
instance Property "Treatment" TreatmentToWeightProperty where
  type PropertyType "Treatment" TreatmentToWeightProperty = Value Prelude.Text
  set :: PropertyType "Treatment" TreatmentToWeightProperty
-> TreatmentToWeightProperty -> TreatmentToWeightProperty
set PropertyType "Treatment" TreatmentToWeightProperty
newValue TreatmentToWeightProperty {()
Value Integer
Value Text
haddock_workaround_ :: TreatmentToWeightProperty -> ()
splitWeight :: TreatmentToWeightProperty -> Value Integer
treatment :: TreatmentToWeightProperty -> Value Text
haddock_workaround_ :: ()
splitWeight :: Value Integer
treatment :: Value Text
..}
    = TreatmentToWeightProperty {treatment :: Value Text
treatment = PropertyType "Treatment" TreatmentToWeightProperty
Value Text
newValue, ()
Value Integer
haddock_workaround_ :: ()
splitWeight :: Value Integer
haddock_workaround_ :: ()
splitWeight :: Value Integer
..}