packages feed

stratosphere-0.53.0: library-gen/Stratosphere/ResourceProperties/IoTEventsDetectorModelAssetPropertyValue.hs

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

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

module Stratosphere.ResourceProperties.IoTEventsDetectorModelAssetPropertyValue where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.IoTEventsDetectorModelAssetPropertyTimestamp
import Stratosphere.ResourceProperties.IoTEventsDetectorModelAssetPropertyVariant

-- | Full data type definition for IoTEventsDetectorModelAssetPropertyValue.
-- See 'ioTEventsDetectorModelAssetPropertyValue' for a more convenient
-- constructor.
data IoTEventsDetectorModelAssetPropertyValue =
  IoTEventsDetectorModelAssetPropertyValue
  { _ioTEventsDetectorModelAssetPropertyValueQuality :: Maybe (Val Text)
  , _ioTEventsDetectorModelAssetPropertyValueTimestamp :: Maybe IoTEventsDetectorModelAssetPropertyTimestamp
  , _ioTEventsDetectorModelAssetPropertyValueValue :: Maybe IoTEventsDetectorModelAssetPropertyVariant
  } deriving (Show, Eq)

instance ToJSON IoTEventsDetectorModelAssetPropertyValue where
  toJSON IoTEventsDetectorModelAssetPropertyValue{..} =
    object $
    catMaybes
    [ fmap (("Quality",) . toJSON) _ioTEventsDetectorModelAssetPropertyValueQuality
    , fmap (("Timestamp",) . toJSON) _ioTEventsDetectorModelAssetPropertyValueTimestamp
    , fmap (("Value",) . toJSON) _ioTEventsDetectorModelAssetPropertyValueValue
    ]

-- | Constructor for 'IoTEventsDetectorModelAssetPropertyValue' containing
-- required fields as arguments.
ioTEventsDetectorModelAssetPropertyValue
  :: IoTEventsDetectorModelAssetPropertyValue
ioTEventsDetectorModelAssetPropertyValue  =
  IoTEventsDetectorModelAssetPropertyValue
  { _ioTEventsDetectorModelAssetPropertyValueQuality = Nothing
  , _ioTEventsDetectorModelAssetPropertyValueTimestamp = Nothing
  , _ioTEventsDetectorModelAssetPropertyValueValue = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html#cfn-iotevents-detectormodel-assetpropertyvalue-quality
itedmapvQuality :: Lens' IoTEventsDetectorModelAssetPropertyValue (Maybe (Val Text))
itedmapvQuality = lens _ioTEventsDetectorModelAssetPropertyValueQuality (\s a -> s { _ioTEventsDetectorModelAssetPropertyValueQuality = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html#cfn-iotevents-detectormodel-assetpropertyvalue-timestamp
itedmapvTimestamp :: Lens' IoTEventsDetectorModelAssetPropertyValue (Maybe IoTEventsDetectorModelAssetPropertyTimestamp)
itedmapvTimestamp = lens _ioTEventsDetectorModelAssetPropertyValueTimestamp (\s a -> s { _ioTEventsDetectorModelAssetPropertyValueTimestamp = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html#cfn-iotevents-detectormodel-assetpropertyvalue-value
itedmapvValue :: Lens' IoTEventsDetectorModelAssetPropertyValue (Maybe IoTEventsDetectorModelAssetPropertyVariant)
itedmapvValue = lens _ioTEventsDetectorModelAssetPropertyValueValue (\s a -> s { _ioTEventsDetectorModelAssetPropertyValueValue = a })