packages feed

stratosphere-0.41.0: library-gen/Stratosphere/ResourceProperties/IoTEventsDetectorModelTransitionEvent.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html

module Stratosphere.ResourceProperties.IoTEventsDetectorModelTransitionEvent where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.IoTEventsDetectorModelAction

-- | Full data type definition for IoTEventsDetectorModelTransitionEvent. See
-- 'ioTEventsDetectorModelTransitionEvent' for a more convenient
-- constructor.
data IoTEventsDetectorModelTransitionEvent =
  IoTEventsDetectorModelTransitionEvent
  { _ioTEventsDetectorModelTransitionEventActions :: Maybe [IoTEventsDetectorModelAction]
  , _ioTEventsDetectorModelTransitionEventCondition :: Maybe (Val Text)
  , _ioTEventsDetectorModelTransitionEventEventName :: Maybe (Val Text)
  , _ioTEventsDetectorModelTransitionEventNextState :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON IoTEventsDetectorModelTransitionEvent where
  toJSON IoTEventsDetectorModelTransitionEvent{..} =
    object $
    catMaybes
    [ fmap (("Actions",) . toJSON) _ioTEventsDetectorModelTransitionEventActions
    , fmap (("Condition",) . toJSON) _ioTEventsDetectorModelTransitionEventCondition
    , fmap (("EventName",) . toJSON) _ioTEventsDetectorModelTransitionEventEventName
    , fmap (("NextState",) . toJSON) _ioTEventsDetectorModelTransitionEventNextState
    ]

-- | Constructor for 'IoTEventsDetectorModelTransitionEvent' containing
-- required fields as arguments.
ioTEventsDetectorModelTransitionEvent
  :: IoTEventsDetectorModelTransitionEvent
ioTEventsDetectorModelTransitionEvent  =
  IoTEventsDetectorModelTransitionEvent
  { _ioTEventsDetectorModelTransitionEventActions = Nothing
  , _ioTEventsDetectorModelTransitionEventCondition = Nothing
  , _ioTEventsDetectorModelTransitionEventEventName = Nothing
  , _ioTEventsDetectorModelTransitionEventNextState = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html#cfn-iotevents-detectormodel-transitionevent-actions
itedmteActions :: Lens' IoTEventsDetectorModelTransitionEvent (Maybe [IoTEventsDetectorModelAction])
itedmteActions = lens _ioTEventsDetectorModelTransitionEventActions (\s a -> s { _ioTEventsDetectorModelTransitionEventActions = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html#cfn-iotevents-detectormodel-transitionevent-condition
itedmteCondition :: Lens' IoTEventsDetectorModelTransitionEvent (Maybe (Val Text))
itedmteCondition = lens _ioTEventsDetectorModelTransitionEventCondition (\s a -> s { _ioTEventsDetectorModelTransitionEventCondition = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html#cfn-iotevents-detectormodel-transitionevent-eventname
itedmteEventName :: Lens' IoTEventsDetectorModelTransitionEvent (Maybe (Val Text))
itedmteEventName = lens _ioTEventsDetectorModelTransitionEventEventName (\s a -> s { _ioTEventsDetectorModelTransitionEventEventName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html#cfn-iotevents-detectormodel-transitionevent-nextstate
itedmteNextState :: Lens' IoTEventsDetectorModelTransitionEvent (Maybe (Val Text))
itedmteNextState = lens _ioTEventsDetectorModelTransitionEventNextState (\s a -> s { _ioTEventsDetectorModelTransitionEventNextState = a })