{-# 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 #-}
module Network.AWS.SES.DeleteIdentity
    (
    
      deleteIdentity
    , DeleteIdentity
    
    , diIdentity
    
    , deleteIdentityResponse
    , DeleteIdentityResponse
    
    , dirsResponseStatus
    ) where
import           Network.AWS.Lens
import           Network.AWS.Prelude
import           Network.AWS.Request
import           Network.AWS.Response
import           Network.AWS.SES.Types
import           Network.AWS.SES.Types.Product
newtype DeleteIdentity = DeleteIdentity'
    { _diIdentity :: Text
    } deriving (Eq,Read,Show,Data,Typeable,Generic)
deleteIdentity
    :: Text 
    -> DeleteIdentity
deleteIdentity pIdentity_ =
    DeleteIdentity'
    { _diIdentity = pIdentity_
    }
diIdentity :: Lens' DeleteIdentity Text
diIdentity = lens _diIdentity (\ s a -> s{_diIdentity = a});
instance AWSRequest DeleteIdentity where
        type Rs DeleteIdentity = DeleteIdentityResponse
        request = postQuery ses
        response
          = receiveXMLWrapper "DeleteIdentityResult"
              (\ s h x ->
                 DeleteIdentityResponse' <$> (pure (fromEnum s)))
instance Hashable DeleteIdentity
instance NFData DeleteIdentity
instance ToHeaders DeleteIdentity where
        toHeaders = const mempty
instance ToPath DeleteIdentity where
        toPath = const "/"
instance ToQuery DeleteIdentity where
        toQuery DeleteIdentity'{..}
          = mconcat
              ["Action" =: ("DeleteIdentity" :: ByteString),
               "Version" =: ("2010-12-01" :: ByteString),
               "Identity" =: _diIdentity]
newtype DeleteIdentityResponse = DeleteIdentityResponse'
    { _dirsResponseStatus :: Int
    } deriving (Eq,Read,Show,Data,Typeable,Generic)
deleteIdentityResponse
    :: Int 
    -> DeleteIdentityResponse
deleteIdentityResponse pResponseStatus_ =
    DeleteIdentityResponse'
    { _dirsResponseStatus = pResponseStatus_
    }
dirsResponseStatus :: Lens' DeleteIdentityResponse Int
dirsResponseStatus = lens _dirsResponseStatus (\ s a -> s{_dirsResponseStatus = a});
instance NFData DeleteIdentityResponse