module Stratosphere.Pinpoint.Segment.RecencyProperty (
        RecencyProperty(..), mkRecencyProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data RecencyProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-behavior-recency.html>
    RecencyProperty {RecencyProperty -> ()
haddock_workaround_ :: (),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-behavior-recency.html#cfn-pinpoint-segment-segmentdimensions-behavior-recency-duration>
                     RecencyProperty -> Value Text
duration :: (Value Prelude.Text),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-behavior-recency.html#cfn-pinpoint-segment-segmentdimensions-behavior-recency-recencytype>
                     RecencyProperty -> Value Text
recencyType :: (Value Prelude.Text)}
  deriving stock (RecencyProperty -> RecencyProperty -> Bool
(RecencyProperty -> RecencyProperty -> Bool)
-> (RecencyProperty -> RecencyProperty -> Bool)
-> Eq RecencyProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RecencyProperty -> RecencyProperty -> Bool
== :: RecencyProperty -> RecencyProperty -> Bool
$c/= :: RecencyProperty -> RecencyProperty -> Bool
/= :: RecencyProperty -> RecencyProperty -> Bool
Prelude.Eq, Int -> RecencyProperty -> ShowS
[RecencyProperty] -> ShowS
RecencyProperty -> String
(Int -> RecencyProperty -> ShowS)
-> (RecencyProperty -> String)
-> ([RecencyProperty] -> ShowS)
-> Show RecencyProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RecencyProperty -> ShowS
showsPrec :: Int -> RecencyProperty -> ShowS
$cshow :: RecencyProperty -> String
show :: RecencyProperty -> String
$cshowList :: [RecencyProperty] -> ShowS
showList :: [RecencyProperty] -> ShowS
Prelude.Show)
mkRecencyProperty ::
  Value Prelude.Text -> Value Prelude.Text -> RecencyProperty
mkRecencyProperty :: Value Text -> Value Text -> RecencyProperty
mkRecencyProperty Value Text
duration Value Text
recencyType
  = RecencyProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), duration :: Value Text
duration = Value Text
duration,
       recencyType :: Value Text
recencyType = Value Text
recencyType}
instance ToResourceProperties RecencyProperty where
  toResourceProperties :: RecencyProperty -> ResourceProperties
toResourceProperties RecencyProperty {()
Value Text
haddock_workaround_ :: RecencyProperty -> ()
duration :: RecencyProperty -> Value Text
recencyType :: RecencyProperty -> Value Text
haddock_workaround_ :: ()
duration :: Value Text
recencyType :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Pinpoint::Segment.Recency",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Duration" 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
duration,
                       Key
"RecencyType" 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
recencyType]}
instance JSON.ToJSON RecencyProperty where
  toJSON :: RecencyProperty -> Value
toJSON RecencyProperty {()
Value Text
haddock_workaround_ :: RecencyProperty -> ()
duration :: RecencyProperty -> Value Text
recencyType :: RecencyProperty -> Value Text
haddock_workaround_ :: ()
duration :: Value Text
recencyType :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Duration" 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
duration, Key
"RecencyType" 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
recencyType]
instance Property "Duration" RecencyProperty where
  type PropertyType "Duration" RecencyProperty = Value Prelude.Text
  set :: PropertyType "Duration" RecencyProperty
-> RecencyProperty -> RecencyProperty
set PropertyType "Duration" RecencyProperty
newValue RecencyProperty {()
Value Text
haddock_workaround_ :: RecencyProperty -> ()
duration :: RecencyProperty -> Value Text
recencyType :: RecencyProperty -> Value Text
haddock_workaround_ :: ()
duration :: Value Text
recencyType :: Value Text
..}
    = RecencyProperty {duration :: Value Text
duration = PropertyType "Duration" RecencyProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
recencyType :: Value Text
haddock_workaround_ :: ()
recencyType :: Value Text
..}
instance Property "RecencyType" RecencyProperty where
  type PropertyType "RecencyType" RecencyProperty = Value Prelude.Text
  set :: PropertyType "RecencyType" RecencyProperty
-> RecencyProperty -> RecencyProperty
set PropertyType "RecencyType" RecencyProperty
newValue RecencyProperty {()
Value Text
haddock_workaround_ :: RecencyProperty -> ()
duration :: RecencyProperty -> Value Text
recencyType :: RecencyProperty -> Value Text
haddock_workaround_ :: ()
duration :: Value Text
recencyType :: Value Text
..}
    = RecencyProperty {recencyType :: Value Text
recencyType = PropertyType "RecencyType" RecencyProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
duration :: Value Text
haddock_workaround_ :: ()
duration :: Value Text
..}