module Network.AWS.Glue.GetTables
(
getTables
, GetTables
, gtCatalogId
, gtNextToken
, gtExpression
, gtMaxResults
, gtDatabaseName
, getTablesResponse
, GetTablesResponse
, gtsrsTableList
, gtsrsNextToken
, gtsrsResponseStatus
) 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 GetTables = GetTables'
{ _gtCatalogId :: !(Maybe Text)
, _gtNextToken :: !(Maybe Text)
, _gtExpression :: !(Maybe Text)
, _gtMaxResults :: !(Maybe Nat)
, _gtDatabaseName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getTables
:: Text
-> GetTables
getTables pDatabaseName_ =
GetTables'
{ _gtCatalogId = Nothing
, _gtNextToken = Nothing
, _gtExpression = Nothing
, _gtMaxResults = Nothing
, _gtDatabaseName = pDatabaseName_
}
gtCatalogId :: Lens' GetTables (Maybe Text)
gtCatalogId = lens _gtCatalogId (\ s a -> s{_gtCatalogId = a});
gtNextToken :: Lens' GetTables (Maybe Text)
gtNextToken = lens _gtNextToken (\ s a -> s{_gtNextToken = a});
gtExpression :: Lens' GetTables (Maybe Text)
gtExpression = lens _gtExpression (\ s a -> s{_gtExpression = a});
gtMaxResults :: Lens' GetTables (Maybe Natural)
gtMaxResults = lens _gtMaxResults (\ s a -> s{_gtMaxResults = a}) . mapping _Nat;
gtDatabaseName :: Lens' GetTables Text
gtDatabaseName = lens _gtDatabaseName (\ s a -> s{_gtDatabaseName = a});
instance AWSRequest GetTables where
type Rs GetTables = GetTablesResponse
request = postJSON glue
response
= receiveJSON
(\ s h x ->
GetTablesResponse' <$>
(x .?> "TableList" .!@ mempty) <*>
(x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable GetTables where
instance NFData GetTables where
instance ToHeaders GetTables where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSGlue.GetTables" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetTables where
toJSON GetTables'{..}
= object
(catMaybes
[("CatalogId" .=) <$> _gtCatalogId,
("NextToken" .=) <$> _gtNextToken,
("Expression" .=) <$> _gtExpression,
("MaxResults" .=) <$> _gtMaxResults,
Just ("DatabaseName" .= _gtDatabaseName)])
instance ToPath GetTables where
toPath = const "/"
instance ToQuery GetTables where
toQuery = const mempty
data GetTablesResponse = GetTablesResponse'
{ _gtsrsTableList :: !(Maybe [Table])
, _gtsrsNextToken :: !(Maybe Text)
, _gtsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getTablesResponse
:: Int
-> GetTablesResponse
getTablesResponse pResponseStatus_ =
GetTablesResponse'
{ _gtsrsTableList = Nothing
, _gtsrsNextToken = Nothing
, _gtsrsResponseStatus = pResponseStatus_
}
gtsrsTableList :: Lens' GetTablesResponse [Table]
gtsrsTableList = lens _gtsrsTableList (\ s a -> s{_gtsrsTableList = a}) . _Default . _Coerce;
gtsrsNextToken :: Lens' GetTablesResponse (Maybe Text)
gtsrsNextToken = lens _gtsrsNextToken (\ s a -> s{_gtsrsNextToken = a});
gtsrsResponseStatus :: Lens' GetTablesResponse Int
gtsrsResponseStatus = lens _gtsrsResponseStatus (\ s a -> s{_gtsrsResponseStatus = a});
instance NFData GetTablesResponse where