{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.Glue.GetUserDefinedFunctions -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Retrieves a multiple function definitions from the Data Catalog. -- -- module Network.AWS.Glue.GetUserDefinedFunctions ( -- * Creating a Request getUserDefinedFunctions , GetUserDefinedFunctions -- * Request Lenses , gudfCatalogId , gudfNextToken , gudfMaxResults , gudfDatabaseName , gudfPattern -- * Destructuring the Response , getUserDefinedFunctionsResponse , GetUserDefinedFunctionsResponse -- * Response Lenses , gudfrsNextToken , gudfrsUserDefinedFunctions , gudfrsResponseStatus ) 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 -- | /See:/ 'getUserDefinedFunctions' smart constructor. data GetUserDefinedFunctions = GetUserDefinedFunctions' { _gudfCatalogId :: !(Maybe Text) , _gudfNextToken :: !(Maybe Text) , _gudfMaxResults :: !(Maybe Nat) , _gudfDatabaseName :: !Text , _gudfPattern :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetUserDefinedFunctions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gudfCatalogId' - The ID of the Data Catalog where the functions to be retrieved are located. If none is supplied, the AWS account ID is used by default. -- -- * 'gudfNextToken' - A continuation token, if this is a continuation call. -- -- * 'gudfMaxResults' - The maximum number of functions to return in one response. -- -- * 'gudfDatabaseName' - The name of the catalog database where the functions are located. -- -- * 'gudfPattern' - An optional function-name pattern string that filters the function definitions returned. getUserDefinedFunctions :: Text -- ^ 'gudfDatabaseName' -> Text -- ^ 'gudfPattern' -> GetUserDefinedFunctions getUserDefinedFunctions pDatabaseName_ pPattern_ = GetUserDefinedFunctions' { _gudfCatalogId = Nothing , _gudfNextToken = Nothing , _gudfMaxResults = Nothing , _gudfDatabaseName = pDatabaseName_ , _gudfPattern = pPattern_ } -- | The ID of the Data Catalog where the functions to be retrieved are located. If none is supplied, the AWS account ID is used by default. gudfCatalogId :: Lens' GetUserDefinedFunctions (Maybe Text) gudfCatalogId = lens _gudfCatalogId (\ s a -> s{_gudfCatalogId = a}); -- | A continuation token, if this is a continuation call. gudfNextToken :: Lens' GetUserDefinedFunctions (Maybe Text) gudfNextToken = lens _gudfNextToken (\ s a -> s{_gudfNextToken = a}); -- | The maximum number of functions to return in one response. gudfMaxResults :: Lens' GetUserDefinedFunctions (Maybe Natural) gudfMaxResults = lens _gudfMaxResults (\ s a -> s{_gudfMaxResults = a}) . mapping _Nat; -- | The name of the catalog database where the functions are located. gudfDatabaseName :: Lens' GetUserDefinedFunctions Text gudfDatabaseName = lens _gudfDatabaseName (\ s a -> s{_gudfDatabaseName = a}); -- | An optional function-name pattern string that filters the function definitions returned. gudfPattern :: Lens' GetUserDefinedFunctions Text gudfPattern = lens _gudfPattern (\ s a -> s{_gudfPattern = a}); instance AWSRequest GetUserDefinedFunctions where type Rs GetUserDefinedFunctions = GetUserDefinedFunctionsResponse request = postJSON glue response = receiveJSON (\ s h x -> GetUserDefinedFunctionsResponse' <$> (x .?> "NextToken") <*> (x .?> "UserDefinedFunctions" .!@ mempty) <*> (pure (fromEnum s))) instance Hashable GetUserDefinedFunctions where instance NFData GetUserDefinedFunctions where instance ToHeaders GetUserDefinedFunctions where toHeaders = const (mconcat ["X-Amz-Target" =# ("AWSGlue.GetUserDefinedFunctions" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON GetUserDefinedFunctions where toJSON GetUserDefinedFunctions'{..} = object (catMaybes [("CatalogId" .=) <$> _gudfCatalogId, ("NextToken" .=) <$> _gudfNextToken, ("MaxResults" .=) <$> _gudfMaxResults, Just ("DatabaseName" .= _gudfDatabaseName), Just ("Pattern" .= _gudfPattern)]) instance ToPath GetUserDefinedFunctions where toPath = const "/" instance ToQuery GetUserDefinedFunctions where toQuery = const mempty -- | /See:/ 'getUserDefinedFunctionsResponse' smart constructor. data GetUserDefinedFunctionsResponse = GetUserDefinedFunctionsResponse' { _gudfrsNextToken :: !(Maybe Text) , _gudfrsUserDefinedFunctions :: !(Maybe [UserDefinedFunction]) , _gudfrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetUserDefinedFunctionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gudfrsNextToken' - A continuation token, if the list of functions returned does not include the last requested function. -- -- * 'gudfrsUserDefinedFunctions' - A list of requested function definitions. -- -- * 'gudfrsResponseStatus' - -- | The response status code. getUserDefinedFunctionsResponse :: Int -- ^ 'gudfrsResponseStatus' -> GetUserDefinedFunctionsResponse getUserDefinedFunctionsResponse pResponseStatus_ = GetUserDefinedFunctionsResponse' { _gudfrsNextToken = Nothing , _gudfrsUserDefinedFunctions = Nothing , _gudfrsResponseStatus = pResponseStatus_ } -- | A continuation token, if the list of functions returned does not include the last requested function. gudfrsNextToken :: Lens' GetUserDefinedFunctionsResponse (Maybe Text) gudfrsNextToken = lens _gudfrsNextToken (\ s a -> s{_gudfrsNextToken = a}); -- | A list of requested function definitions. gudfrsUserDefinedFunctions :: Lens' GetUserDefinedFunctionsResponse [UserDefinedFunction] gudfrsUserDefinedFunctions = lens _gudfrsUserDefinedFunctions (\ s a -> s{_gudfrsUserDefinedFunctions = a}) . _Default . _Coerce; -- | -- | The response status code. gudfrsResponseStatus :: Lens' GetUserDefinedFunctionsResponse Int gudfrsResponseStatus = lens _gudfrsResponseStatus (\ s a -> s{_gudfrsResponseStatus = a}); instance NFData GetUserDefinedFunctionsResponse where