module Stratosphere.Evidently.Launch.SegmentOverrideProperty (
        module Exports, SegmentOverrideProperty(..),
        mkSegmentOverrideProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Evidently.Launch.GroupToWeightProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SegmentOverrideProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-segmentoverride.html>
    SegmentOverrideProperty {SegmentOverrideProperty -> ()
haddock_workaround_ :: (),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-segmentoverride.html#cfn-evidently-launch-segmentoverride-evaluationorder>
                             SegmentOverrideProperty -> Value Integer
evaluationOrder :: (Value Prelude.Integer),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-segmentoverride.html#cfn-evidently-launch-segmentoverride-segment>
                             SegmentOverrideProperty -> Value Text
segment :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-segmentoverride.html#cfn-evidently-launch-segmentoverride-weights>
                             SegmentOverrideProperty -> [GroupToWeightProperty]
weights :: [GroupToWeightProperty]}
  deriving stock (SegmentOverrideProperty -> SegmentOverrideProperty -> Bool
(SegmentOverrideProperty -> SegmentOverrideProperty -> Bool)
-> (SegmentOverrideProperty -> SegmentOverrideProperty -> Bool)
-> Eq SegmentOverrideProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SegmentOverrideProperty -> SegmentOverrideProperty -> Bool
== :: SegmentOverrideProperty -> SegmentOverrideProperty -> Bool
$c/= :: SegmentOverrideProperty -> SegmentOverrideProperty -> Bool
/= :: SegmentOverrideProperty -> SegmentOverrideProperty -> Bool
Prelude.Eq, Int -> SegmentOverrideProperty -> ShowS
[SegmentOverrideProperty] -> ShowS
SegmentOverrideProperty -> String
(Int -> SegmentOverrideProperty -> ShowS)
-> (SegmentOverrideProperty -> String)
-> ([SegmentOverrideProperty] -> ShowS)
-> Show SegmentOverrideProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SegmentOverrideProperty -> ShowS
showsPrec :: Int -> SegmentOverrideProperty -> ShowS
$cshow :: SegmentOverrideProperty -> String
show :: SegmentOverrideProperty -> String
$cshowList :: [SegmentOverrideProperty] -> ShowS
showList :: [SegmentOverrideProperty] -> ShowS
Prelude.Show)
mkSegmentOverrideProperty ::
  Value Prelude.Integer
  -> Value Prelude.Text
     -> [GroupToWeightProperty] -> SegmentOverrideProperty
mkSegmentOverrideProperty :: Value Integer
-> Value Text -> [GroupToWeightProperty] -> SegmentOverrideProperty
mkSegmentOverrideProperty Value Integer
evaluationOrder Value Text
segment [GroupToWeightProperty]
weights
  = SegmentOverrideProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), evaluationOrder :: Value Integer
evaluationOrder = Value Integer
evaluationOrder,
       segment :: Value Text
segment = Value Text
segment, weights :: [GroupToWeightProperty]
weights = [GroupToWeightProperty]
weights}
instance ToResourceProperties SegmentOverrideProperty where
  toResourceProperties :: SegmentOverrideProperty -> ResourceProperties
toResourceProperties SegmentOverrideProperty {[GroupToWeightProperty]
()
Value Integer
Value Text
haddock_workaround_ :: SegmentOverrideProperty -> ()
evaluationOrder :: SegmentOverrideProperty -> Value Integer
segment :: SegmentOverrideProperty -> Value Text
weights :: SegmentOverrideProperty -> [GroupToWeightProperty]
haddock_workaround_ :: ()
evaluationOrder :: Value Integer
segment :: Value Text
weights :: [GroupToWeightProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Evidently::Launch.SegmentOverride",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"EvaluationOrder" 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
evaluationOrder,
                       Key
"Segment" 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
segment, Key
"Weights" Key -> [GroupToWeightProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [GroupToWeightProperty]
weights]}
instance JSON.ToJSON SegmentOverrideProperty where
  toJSON :: SegmentOverrideProperty -> Value
toJSON SegmentOverrideProperty {[GroupToWeightProperty]
()
Value Integer
Value Text
haddock_workaround_ :: SegmentOverrideProperty -> ()
evaluationOrder :: SegmentOverrideProperty -> Value Integer
segment :: SegmentOverrideProperty -> Value Text
weights :: SegmentOverrideProperty -> [GroupToWeightProperty]
haddock_workaround_ :: ()
evaluationOrder :: Value Integer
segment :: Value Text
weights :: [GroupToWeightProperty]
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"EvaluationOrder" 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
evaluationOrder,
         Key
"Segment" 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
segment, Key
"Weights" Key -> [GroupToWeightProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [GroupToWeightProperty]
weights]
instance Property "EvaluationOrder" SegmentOverrideProperty where
  type PropertyType "EvaluationOrder" SegmentOverrideProperty = Value Prelude.Integer
  set :: PropertyType "EvaluationOrder" SegmentOverrideProperty
-> SegmentOverrideProperty -> SegmentOverrideProperty
set PropertyType "EvaluationOrder" SegmentOverrideProperty
newValue SegmentOverrideProperty {[GroupToWeightProperty]
()
Value Integer
Value Text
haddock_workaround_ :: SegmentOverrideProperty -> ()
evaluationOrder :: SegmentOverrideProperty -> Value Integer
segment :: SegmentOverrideProperty -> Value Text
weights :: SegmentOverrideProperty -> [GroupToWeightProperty]
haddock_workaround_ :: ()
evaluationOrder :: Value Integer
segment :: Value Text
weights :: [GroupToWeightProperty]
..}
    = SegmentOverrideProperty {evaluationOrder :: Value Integer
evaluationOrder = PropertyType "EvaluationOrder" SegmentOverrideProperty
Value Integer
newValue, [GroupToWeightProperty]
()
Value Text
haddock_workaround_ :: ()
segment :: Value Text
weights :: [GroupToWeightProperty]
haddock_workaround_ :: ()
segment :: Value Text
weights :: [GroupToWeightProperty]
..}
instance Property "Segment" SegmentOverrideProperty where
  type PropertyType "Segment" SegmentOverrideProperty = Value Prelude.Text
  set :: PropertyType "Segment" SegmentOverrideProperty
-> SegmentOverrideProperty -> SegmentOverrideProperty
set PropertyType "Segment" SegmentOverrideProperty
newValue SegmentOverrideProperty {[GroupToWeightProperty]
()
Value Integer
Value Text
haddock_workaround_ :: SegmentOverrideProperty -> ()
evaluationOrder :: SegmentOverrideProperty -> Value Integer
segment :: SegmentOverrideProperty -> Value Text
weights :: SegmentOverrideProperty -> [GroupToWeightProperty]
haddock_workaround_ :: ()
evaluationOrder :: Value Integer
segment :: Value Text
weights :: [GroupToWeightProperty]
..}
    = SegmentOverrideProperty {segment :: Value Text
segment = PropertyType "Segment" SegmentOverrideProperty
Value Text
newValue, [GroupToWeightProperty]
()
Value Integer
haddock_workaround_ :: ()
evaluationOrder :: Value Integer
weights :: [GroupToWeightProperty]
haddock_workaround_ :: ()
evaluationOrder :: Value Integer
weights :: [GroupToWeightProperty]
..}
instance Property "Weights" SegmentOverrideProperty where
  type PropertyType "Weights" SegmentOverrideProperty = [GroupToWeightProperty]
  set :: PropertyType "Weights" SegmentOverrideProperty
-> SegmentOverrideProperty -> SegmentOverrideProperty
set PropertyType "Weights" SegmentOverrideProperty
newValue SegmentOverrideProperty {[GroupToWeightProperty]
()
Value Integer
Value Text
haddock_workaround_ :: SegmentOverrideProperty -> ()
evaluationOrder :: SegmentOverrideProperty -> Value Integer
segment :: SegmentOverrideProperty -> Value Text
weights :: SegmentOverrideProperty -> [GroupToWeightProperty]
haddock_workaround_ :: ()
evaluationOrder :: Value Integer
segment :: Value Text
weights :: [GroupToWeightProperty]
..}
    = SegmentOverrideProperty {weights :: [GroupToWeightProperty]
weights = [GroupToWeightProperty]
PropertyType "Weights" SegmentOverrideProperty
newValue, ()
Value Integer
Value Text
haddock_workaround_ :: ()
evaluationOrder :: Value Integer
segment :: Value Text
haddock_workaround_ :: ()
evaluationOrder :: Value Integer
segment :: Value Text
..}