module Stratosphere.IoTAnalytics.Dataset.TriggerProperty (
        module Exports, TriggerProperty(..), mkTriggerProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.IoTAnalytics.Dataset.ScheduleProperty as Exports
import {-# SOURCE #-} Stratosphere.IoTAnalytics.Dataset.TriggeringDatasetProperty as Exports
import Stratosphere.ResourceProperties
data TriggerProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html>
    TriggerProperty {TriggerProperty -> ()
haddock_workaround_ :: (),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html#cfn-iotanalytics-dataset-trigger-schedule>
                     TriggerProperty -> Maybe ScheduleProperty
schedule :: (Prelude.Maybe ScheduleProperty),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html#cfn-iotanalytics-dataset-trigger-triggeringdataset>
                     TriggerProperty -> Maybe TriggeringDatasetProperty
triggeringDataset :: (Prelude.Maybe TriggeringDatasetProperty)}
  deriving stock (TriggerProperty -> TriggerProperty -> Bool
(TriggerProperty -> TriggerProperty -> Bool)
-> (TriggerProperty -> TriggerProperty -> Bool)
-> Eq TriggerProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TriggerProperty -> TriggerProperty -> Bool
== :: TriggerProperty -> TriggerProperty -> Bool
$c/= :: TriggerProperty -> TriggerProperty -> Bool
/= :: TriggerProperty -> TriggerProperty -> Bool
Prelude.Eq, Int -> TriggerProperty -> ShowS
[TriggerProperty] -> ShowS
TriggerProperty -> String
(Int -> TriggerProperty -> ShowS)
-> (TriggerProperty -> String)
-> ([TriggerProperty] -> ShowS)
-> Show TriggerProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TriggerProperty -> ShowS
showsPrec :: Int -> TriggerProperty -> ShowS
$cshow :: TriggerProperty -> String
show :: TriggerProperty -> String
$cshowList :: [TriggerProperty] -> ShowS
showList :: [TriggerProperty] -> ShowS
Prelude.Show)
mkTriggerProperty :: TriggerProperty
mkTriggerProperty :: TriggerProperty
mkTriggerProperty
  = TriggerProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), schedule :: Maybe ScheduleProperty
schedule = Maybe ScheduleProperty
forall a. Maybe a
Prelude.Nothing,
       triggeringDataset :: Maybe TriggeringDatasetProperty
triggeringDataset = Maybe TriggeringDatasetProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties TriggerProperty where
  toResourceProperties :: TriggerProperty -> ResourceProperties
toResourceProperties TriggerProperty {Maybe ScheduleProperty
Maybe TriggeringDatasetProperty
()
haddock_workaround_ :: TriggerProperty -> ()
schedule :: TriggerProperty -> Maybe ScheduleProperty
triggeringDataset :: TriggerProperty -> Maybe TriggeringDatasetProperty
haddock_workaround_ :: ()
schedule :: Maybe ScheduleProperty
triggeringDataset :: Maybe TriggeringDatasetProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoTAnalytics::Dataset.Trigger",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> ScheduleProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Schedule" (ScheduleProperty -> (Key, Value))
-> Maybe ScheduleProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ScheduleProperty
schedule,
                            Key -> TriggeringDatasetProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"TriggeringDataset" (TriggeringDatasetProperty -> (Key, Value))
-> Maybe TriggeringDatasetProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TriggeringDatasetProperty
triggeringDataset])}
instance JSON.ToJSON TriggerProperty where
  toJSON :: TriggerProperty -> Value
toJSON TriggerProperty {Maybe ScheduleProperty
Maybe TriggeringDatasetProperty
()
haddock_workaround_ :: TriggerProperty -> ()
schedule :: TriggerProperty -> Maybe ScheduleProperty
triggeringDataset :: TriggerProperty -> Maybe TriggeringDatasetProperty
haddock_workaround_ :: ()
schedule :: Maybe ScheduleProperty
triggeringDataset :: Maybe TriggeringDatasetProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> ScheduleProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Schedule" (ScheduleProperty -> (Key, Value))
-> Maybe ScheduleProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ScheduleProperty
schedule,
               Key -> TriggeringDatasetProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"TriggeringDataset" (TriggeringDatasetProperty -> (Key, Value))
-> Maybe TriggeringDatasetProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TriggeringDatasetProperty
triggeringDataset]))
instance Property "Schedule" TriggerProperty where
  type PropertyType "Schedule" TriggerProperty = ScheduleProperty
  set :: PropertyType "Schedule" TriggerProperty
-> TriggerProperty -> TriggerProperty
set PropertyType "Schedule" TriggerProperty
newValue TriggerProperty {Maybe ScheduleProperty
Maybe TriggeringDatasetProperty
()
haddock_workaround_ :: TriggerProperty -> ()
schedule :: TriggerProperty -> Maybe ScheduleProperty
triggeringDataset :: TriggerProperty -> Maybe TriggeringDatasetProperty
haddock_workaround_ :: ()
schedule :: Maybe ScheduleProperty
triggeringDataset :: Maybe TriggeringDatasetProperty
..}
    = TriggerProperty {schedule :: Maybe ScheduleProperty
schedule = ScheduleProperty -> Maybe ScheduleProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Schedule" TriggerProperty
ScheduleProperty
newValue, Maybe TriggeringDatasetProperty
()
haddock_workaround_ :: ()
triggeringDataset :: Maybe TriggeringDatasetProperty
haddock_workaround_ :: ()
triggeringDataset :: Maybe TriggeringDatasetProperty
..}
instance Property "TriggeringDataset" TriggerProperty where
  type PropertyType "TriggeringDataset" TriggerProperty = TriggeringDatasetProperty
  set :: PropertyType "TriggeringDataset" TriggerProperty
-> TriggerProperty -> TriggerProperty
set PropertyType "TriggeringDataset" TriggerProperty
newValue TriggerProperty {Maybe ScheduleProperty
Maybe TriggeringDatasetProperty
()
haddock_workaround_ :: TriggerProperty -> ()
schedule :: TriggerProperty -> Maybe ScheduleProperty
triggeringDataset :: TriggerProperty -> Maybe TriggeringDatasetProperty
haddock_workaround_ :: ()
schedule :: Maybe ScheduleProperty
triggeringDataset :: Maybe TriggeringDatasetProperty
..}
    = TriggerProperty {triggeringDataset :: Maybe TriggeringDatasetProperty
triggeringDataset = TriggeringDatasetProperty -> Maybe TriggeringDatasetProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "TriggeringDataset" TriggerProperty
TriggeringDatasetProperty
newValue, Maybe ScheduleProperty
()
haddock_workaround_ :: ()
schedule :: Maybe ScheduleProperty
haddock_workaround_ :: ()
schedule :: Maybe ScheduleProperty
..}