stratosphere-0.29.0: library-gen/Stratosphere/Resources/IoTAnalyticsDatastore.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html
module Stratosphere.Resources.IoTAnalyticsDatastore where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.IoTAnalyticsDatastoreRetentionPeriod
import Stratosphere.ResourceProperties.Tag
-- | Full data type definition for IoTAnalyticsDatastore. See
-- 'ioTAnalyticsDatastore' for a more convenient constructor.
data IoTAnalyticsDatastore =
IoTAnalyticsDatastore
{ _ioTAnalyticsDatastoreDatastoreName :: Maybe (Val Text)
, _ioTAnalyticsDatastoreRetentionPeriod :: Maybe IoTAnalyticsDatastoreRetentionPeriod
, _ioTAnalyticsDatastoreTags :: Maybe [Tag]
} deriving (Show, Eq)
instance ToJSON IoTAnalyticsDatastore where
toJSON IoTAnalyticsDatastore{..} =
object $
catMaybes
[ fmap (("DatastoreName",) . toJSON) _ioTAnalyticsDatastoreDatastoreName
, fmap (("RetentionPeriod",) . toJSON) _ioTAnalyticsDatastoreRetentionPeriod
, fmap (("Tags",) . toJSON) _ioTAnalyticsDatastoreTags
]
instance FromJSON IoTAnalyticsDatastore where
parseJSON (Object obj) =
IoTAnalyticsDatastore <$>
(obj .:? "DatastoreName") <*>
(obj .:? "RetentionPeriod") <*>
(obj .:? "Tags")
parseJSON _ = mempty
-- | Constructor for 'IoTAnalyticsDatastore' containing required fields as
-- arguments.
ioTAnalyticsDatastore
:: IoTAnalyticsDatastore
ioTAnalyticsDatastore =
IoTAnalyticsDatastore
{ _ioTAnalyticsDatastoreDatastoreName = Nothing
, _ioTAnalyticsDatastoreRetentionPeriod = Nothing
, _ioTAnalyticsDatastoreTags = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-datastorename
itadstDatastoreName :: Lens' IoTAnalyticsDatastore (Maybe (Val Text))
itadstDatastoreName = lens _ioTAnalyticsDatastoreDatastoreName (\s a -> s { _ioTAnalyticsDatastoreDatastoreName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-retentionperiod
itadstRetentionPeriod :: Lens' IoTAnalyticsDatastore (Maybe IoTAnalyticsDatastoreRetentionPeriod)
itadstRetentionPeriod = lens _ioTAnalyticsDatastoreRetentionPeriod (\s a -> s { _ioTAnalyticsDatastoreRetentionPeriod = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-tags
itadstTags :: Lens' IoTAnalyticsDatastore (Maybe [Tag])
itadstTags = lens _ioTAnalyticsDatastoreTags (\s a -> s { _ioTAnalyticsDatastoreTags = a })