{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.IoTAnalytics.CreateDataset
(
createDataset
, CreateDataset
, cdTriggers
, cdDatasetName
, cdActions
, createDatasetResponse
, CreateDatasetResponse
, crsDatasetARN
, crsDatasetName
, crsResponseStatus
) where
import Network.AWS.IoTAnalytics.Types
import Network.AWS.IoTAnalytics.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateDataset = CreateDataset'
{ _cdTriggers :: !(Maybe [DatasetTrigger])
, _cdDatasetName :: !Text
, _cdActions :: !(List1 DatasetAction)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createDataset
:: Text
-> NonEmpty DatasetAction
-> CreateDataset
createDataset pDatasetName_ pActions_ =
CreateDataset'
{ _cdTriggers = Nothing
, _cdDatasetName = pDatasetName_
, _cdActions = _List1 # pActions_
}
cdTriggers :: Lens' CreateDataset [DatasetTrigger]
cdTriggers = lens _cdTriggers (\ s a -> s{_cdTriggers = a}) . _Default . _Coerce
cdDatasetName :: Lens' CreateDataset Text
cdDatasetName = lens _cdDatasetName (\ s a -> s{_cdDatasetName = a})
cdActions :: Lens' CreateDataset (NonEmpty DatasetAction)
cdActions = lens _cdActions (\ s a -> s{_cdActions = a}) . _List1
instance AWSRequest CreateDataset where
type Rs CreateDataset = CreateDatasetResponse
request = postJSON ioTAnalytics
response
= receiveJSON
(\ s h x ->
CreateDatasetResponse' <$>
(x .?> "datasetArn") <*> (x .?> "datasetName") <*>
(pure (fromEnum s)))
instance Hashable CreateDataset where
instance NFData CreateDataset where
instance ToHeaders CreateDataset where
toHeaders = const mempty
instance ToJSON CreateDataset where
toJSON CreateDataset'{..}
= object
(catMaybes
[("triggers" .=) <$> _cdTriggers,
Just ("datasetName" .= _cdDatasetName),
Just ("actions" .= _cdActions)])
instance ToPath CreateDataset where
toPath = const "/datasets"
instance ToQuery CreateDataset where
toQuery = const mempty
data CreateDatasetResponse = CreateDatasetResponse'
{ _crsDatasetARN :: !(Maybe Text)
, _crsDatasetName :: !(Maybe Text)
, _crsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createDatasetResponse
:: Int
-> CreateDatasetResponse
createDatasetResponse pResponseStatus_ =
CreateDatasetResponse'
{ _crsDatasetARN = Nothing
, _crsDatasetName = Nothing
, _crsResponseStatus = pResponseStatus_
}
crsDatasetARN :: Lens' CreateDatasetResponse (Maybe Text)
crsDatasetARN = lens _crsDatasetARN (\ s a -> s{_crsDatasetARN = a})
crsDatasetName :: Lens' CreateDatasetResponse (Maybe Text)
crsDatasetName = lens _crsDatasetName (\ s a -> s{_crsDatasetName = a})
crsResponseStatus :: Lens' CreateDatasetResponse Int
crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a})
instance NFData CreateDatasetResponse where