stratosphere-0.40.0: library-gen/Stratosphere/Resources/IoTAnalyticsDatastore.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# 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.IoTAnalyticsDatastoreDatastoreStorage
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)
, _ioTAnalyticsDatastoreDatastoreStorage :: Maybe IoTAnalyticsDatastoreDatastoreStorage
, _ioTAnalyticsDatastoreRetentionPeriod :: Maybe IoTAnalyticsDatastoreRetentionPeriod
, _ioTAnalyticsDatastoreTags :: Maybe [Tag]
} deriving (Show, Eq)
instance ToResourceProperties IoTAnalyticsDatastore where
toResourceProperties IoTAnalyticsDatastore{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::IoTAnalytics::Datastore"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ fmap (("DatastoreName",) . toJSON) _ioTAnalyticsDatastoreDatastoreName
, fmap (("DatastoreStorage",) . toJSON) _ioTAnalyticsDatastoreDatastoreStorage
, fmap (("RetentionPeriod",) . toJSON) _ioTAnalyticsDatastoreRetentionPeriod
, fmap (("Tags",) . toJSON) _ioTAnalyticsDatastoreTags
]
}
-- | Constructor for 'IoTAnalyticsDatastore' containing required fields as
-- arguments.
ioTAnalyticsDatastore
:: IoTAnalyticsDatastore
ioTAnalyticsDatastore =
IoTAnalyticsDatastore
{ _ioTAnalyticsDatastoreDatastoreName = Nothing
, _ioTAnalyticsDatastoreDatastoreStorage = 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-datastorestorage
itadstDatastoreStorage :: Lens' IoTAnalyticsDatastore (Maybe IoTAnalyticsDatastoreDatastoreStorage)
itadstDatastoreStorage = lens _ioTAnalyticsDatastoreDatastoreStorage (\s a -> s { _ioTAnalyticsDatastoreDatastoreStorage = 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 })