module Network.AWS.CloudWatchLogs.DeleteSubscriptionFilter
    (
    
      deleteSubscriptionFilter
    , DeleteSubscriptionFilter
    
    , dLogGroupName
    , dFilterName
    
    , deleteSubscriptionFilterResponse
    , DeleteSubscriptionFilterResponse
    ) where
import           Network.AWS.CloudWatchLogs.Types
import           Network.AWS.CloudWatchLogs.Types.Product
import           Network.AWS.Prelude
import           Network.AWS.Request
import           Network.AWS.Response
data DeleteSubscriptionFilter = DeleteSubscriptionFilter'
    { _dLogGroupName :: !Text
    , _dFilterName   :: !Text
    } deriving (Eq,Read,Show,Data,Typeable,Generic)
deleteSubscriptionFilter
    :: Text 
    -> Text 
    -> DeleteSubscriptionFilter
deleteSubscriptionFilter pLogGroupName_ pFilterName_ =
    DeleteSubscriptionFilter'
    { _dLogGroupName = pLogGroupName_
    , _dFilterName = pFilterName_
    }
dLogGroupName :: Lens' DeleteSubscriptionFilter Text
dLogGroupName = lens _dLogGroupName (\ s a -> s{_dLogGroupName = a});
dFilterName :: Lens' DeleteSubscriptionFilter Text
dFilterName = lens _dFilterName (\ s a -> s{_dFilterName = a});
instance AWSRequest DeleteSubscriptionFilter where
        type Rs DeleteSubscriptionFilter =
             DeleteSubscriptionFilterResponse
        request = postJSON cloudWatchLogs
        response
          = receiveNull DeleteSubscriptionFilterResponse'
instance ToHeaders DeleteSubscriptionFilter where
        toHeaders
          = const
              (mconcat
                 ["X-Amz-Target" =#
                    ("Logs_20140328.DeleteSubscriptionFilter" ::
                       ByteString),
                  "Content-Type" =#
                    ("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DeleteSubscriptionFilter where
        toJSON DeleteSubscriptionFilter'{..}
          = object
              (catMaybes
                 [Just ("logGroupName" .= _dLogGroupName),
                  Just ("filterName" .= _dFilterName)])
instance ToPath DeleteSubscriptionFilter where
        toPath = const "/"
instance ToQuery DeleteSubscriptionFilter where
        toQuery = const mempty
data DeleteSubscriptionFilterResponse =
    DeleteSubscriptionFilterResponse'
    deriving (Eq,Read,Show,Data,Typeable,Generic)
deleteSubscriptionFilterResponse
    :: DeleteSubscriptionFilterResponse
deleteSubscriptionFilterResponse = DeleteSubscriptionFilterResponse'