{-# 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.KinesisAnalytics.DescribeApplication -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns information about a specific Amazon Kinesis Analytics application. -- -- -- If you want to retrieve a list of all applications in your account, use the 'ListApplications' operation. -- -- This operation requires permissions to perform the @kinesisanalytics:DescribeApplication@ action. You can use @DescribeApplication@ to get the current application versionId, which you need to call other operations such as @Update@ . -- module Network.AWS.KinesisAnalytics.DescribeApplication ( -- * Creating a Request describeApplication , DescribeApplication -- * Request Lenses , daApplicationName -- * Destructuring the Response , describeApplicationResponse , DescribeApplicationResponse -- * Response Lenses , darsResponseStatus , darsApplicationDetail ) where import Network.AWS.KinesisAnalytics.Types import Network.AWS.KinesisAnalytics.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | -- -- -- -- /See:/ 'describeApplication' smart constructor. newtype DescribeApplication = DescribeApplication' { _daApplicationName :: Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'DescribeApplication' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'daApplicationName' - Name of the application. describeApplication :: Text -- ^ 'daApplicationName' -> DescribeApplication describeApplication pApplicationName_ = DescribeApplication' {_daApplicationName = pApplicationName_} -- | Name of the application. daApplicationName :: Lens' DescribeApplication Text daApplicationName = lens _daApplicationName (\ s a -> s{_daApplicationName = a}); instance AWSRequest DescribeApplication where type Rs DescribeApplication = DescribeApplicationResponse request = postJSON kinesisAnalytics response = receiveJSON (\ s h x -> DescribeApplicationResponse' <$> (pure (fromEnum s)) <*> (x .:> "ApplicationDetail")) instance Hashable DescribeApplication where instance NFData DescribeApplication where instance ToHeaders DescribeApplication where toHeaders = const (mconcat ["X-Amz-Target" =# ("KinesisAnalytics_20150814.DescribeApplication" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON DescribeApplication where toJSON DescribeApplication'{..} = object (catMaybes [Just ("ApplicationName" .= _daApplicationName)]) instance ToPath DescribeApplication where toPath = const "/" instance ToQuery DescribeApplication where toQuery = const mempty -- | -- -- -- -- /See:/ 'describeApplicationResponse' smart constructor. data DescribeApplicationResponse = DescribeApplicationResponse' { _darsResponseStatus :: !Int , _darsApplicationDetail :: !ApplicationDetail } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'DescribeApplicationResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'darsResponseStatus' - -- | The response status code. -- -- * 'darsApplicationDetail' - Provides a description of the application, such as the application Amazon Resource Name (ARN), status, latest version, and input and output configuration details. describeApplicationResponse :: Int -- ^ 'darsResponseStatus' -> ApplicationDetail -- ^ 'darsApplicationDetail' -> DescribeApplicationResponse describeApplicationResponse pResponseStatus_ pApplicationDetail_ = DescribeApplicationResponse' { _darsResponseStatus = pResponseStatus_ , _darsApplicationDetail = pApplicationDetail_ } -- | -- | The response status code. darsResponseStatus :: Lens' DescribeApplicationResponse Int darsResponseStatus = lens _darsResponseStatus (\ s a -> s{_darsResponseStatus = a}); -- | Provides a description of the application, such as the application Amazon Resource Name (ARN), status, latest version, and input and output configuration details. darsApplicationDetail :: Lens' DescribeApplicationResponse ApplicationDetail darsApplicationDetail = lens _darsApplicationDetail (\ s a -> s{_darsApplicationDetail = a}); instance NFData DescribeApplicationResponse where