module Network.AWS.Glue.CreateCrawler
(
createCrawler
, CreateCrawler
, ccSchemaChangePolicy
, ccSchedule
, ccClassifiers
, ccTablePrefix
, ccDescription
, ccName
, ccRole
, ccDatabaseName
, ccTargets
, createCrawlerResponse
, CreateCrawlerResponse
, crersResponseStatus
) where
import Network.AWS.Glue.Types
import Network.AWS.Glue.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateCrawler = CreateCrawler'
{ _ccSchemaChangePolicy :: !(Maybe SchemaChangePolicy)
, _ccSchedule :: !(Maybe Text)
, _ccClassifiers :: !(Maybe [Text])
, _ccTablePrefix :: !(Maybe Text)
, _ccDescription :: !(Maybe Text)
, _ccName :: !Text
, _ccRole :: !Text
, _ccDatabaseName :: !Text
, _ccTargets :: !CrawlerTargets
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createCrawler
:: Text
-> Text
-> Text
-> CrawlerTargets
-> CreateCrawler
createCrawler pName_ pRole_ pDatabaseName_ pTargets_ =
CreateCrawler'
{ _ccSchemaChangePolicy = Nothing
, _ccSchedule = Nothing
, _ccClassifiers = Nothing
, _ccTablePrefix = Nothing
, _ccDescription = Nothing
, _ccName = pName_
, _ccRole = pRole_
, _ccDatabaseName = pDatabaseName_
, _ccTargets = pTargets_
}
ccSchemaChangePolicy :: Lens' CreateCrawler (Maybe SchemaChangePolicy)
ccSchemaChangePolicy = lens _ccSchemaChangePolicy (\ s a -> s{_ccSchemaChangePolicy = a});
ccSchedule :: Lens' CreateCrawler (Maybe Text)
ccSchedule = lens _ccSchedule (\ s a -> s{_ccSchedule = a});
ccClassifiers :: Lens' CreateCrawler [Text]
ccClassifiers = lens _ccClassifiers (\ s a -> s{_ccClassifiers = a}) . _Default . _Coerce;
ccTablePrefix :: Lens' CreateCrawler (Maybe Text)
ccTablePrefix = lens _ccTablePrefix (\ s a -> s{_ccTablePrefix = a});
ccDescription :: Lens' CreateCrawler (Maybe Text)
ccDescription = lens _ccDescription (\ s a -> s{_ccDescription = a});
ccName :: Lens' CreateCrawler Text
ccName = lens _ccName (\ s a -> s{_ccName = a});
ccRole :: Lens' CreateCrawler Text
ccRole = lens _ccRole (\ s a -> s{_ccRole = a});
ccDatabaseName :: Lens' CreateCrawler Text
ccDatabaseName = lens _ccDatabaseName (\ s a -> s{_ccDatabaseName = a});
ccTargets :: Lens' CreateCrawler CrawlerTargets
ccTargets = lens _ccTargets (\ s a -> s{_ccTargets = a});
instance AWSRequest CreateCrawler where
type Rs CreateCrawler = CreateCrawlerResponse
request = postJSON glue
response
= receiveEmpty
(\ s h x ->
CreateCrawlerResponse' <$> (pure (fromEnum s)))
instance Hashable CreateCrawler where
instance NFData CreateCrawler where
instance ToHeaders CreateCrawler where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSGlue.CreateCrawler" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateCrawler where
toJSON CreateCrawler'{..}
= object
(catMaybes
[("SchemaChangePolicy" .=) <$> _ccSchemaChangePolicy,
("Schedule" .=) <$> _ccSchedule,
("Classifiers" .=) <$> _ccClassifiers,
("TablePrefix" .=) <$> _ccTablePrefix,
("Description" .=) <$> _ccDescription,
Just ("Name" .= _ccName), Just ("Role" .= _ccRole),
Just ("DatabaseName" .= _ccDatabaseName),
Just ("Targets" .= _ccTargets)])
instance ToPath CreateCrawler where
toPath = const "/"
instance ToQuery CreateCrawler where
toQuery = const mempty
newtype CreateCrawlerResponse = CreateCrawlerResponse'
{ _crersResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createCrawlerResponse
:: Int
-> CreateCrawlerResponse
createCrawlerResponse pResponseStatus_ =
CreateCrawlerResponse' {_crersResponseStatus = pResponseStatus_}
crersResponseStatus :: Lens' CreateCrawlerResponse Int
crersResponseStatus = lens _crersResponseStatus (\ s a -> s{_crersResponseStatus = a});
instance NFData CreateCrawlerResponse where