module Network.AWS.StorageGateway.DeleteChapCredentials
    (
    
      DeleteChapCredentials
    
    , deleteChapCredentials
    
    , dcc1InitiatorName
    , dcc1TargetARN
    
    , DeleteChapCredentialsResponse
    
    , deleteChapCredentialsResponse
    
    , dccrInitiatorName
    , dccrTargetARN
    ) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.StorageGateway.Types
import qualified GHC.Exts
data DeleteChapCredentials = DeleteChapCredentials
    { _dcc1InitiatorName :: Text
    , _dcc1TargetARN     :: Text
    } deriving (Eq, Ord, Read, Show)
deleteChapCredentials :: Text 
                      -> Text 
                      -> DeleteChapCredentials
deleteChapCredentials p1 p2 = DeleteChapCredentials
    { _dcc1TargetARN     = p1
    , _dcc1InitiatorName = p2
    }
dcc1InitiatorName :: Lens' DeleteChapCredentials Text
dcc1InitiatorName =
    lens _dcc1InitiatorName (\s a -> s { _dcc1InitiatorName = a })
dcc1TargetARN :: Lens' DeleteChapCredentials Text
dcc1TargetARN = lens _dcc1TargetARN (\s a -> s { _dcc1TargetARN = a })
data DeleteChapCredentialsResponse = DeleteChapCredentialsResponse
    { _dccrInitiatorName :: Maybe Text
    , _dccrTargetARN     :: Maybe Text
    } deriving (Eq, Ord, Read, Show)
deleteChapCredentialsResponse :: DeleteChapCredentialsResponse
deleteChapCredentialsResponse = DeleteChapCredentialsResponse
    { _dccrTargetARN     = Nothing
    , _dccrInitiatorName = Nothing
    }
dccrInitiatorName :: Lens' DeleteChapCredentialsResponse (Maybe Text)
dccrInitiatorName =
    lens _dccrInitiatorName (\s a -> s { _dccrInitiatorName = a })
dccrTargetARN :: Lens' DeleteChapCredentialsResponse (Maybe Text)
dccrTargetARN = lens _dccrTargetARN (\s a -> s { _dccrTargetARN = a })
instance ToPath DeleteChapCredentials where
    toPath = const "/"
instance ToQuery DeleteChapCredentials where
    toQuery = const mempty
instance ToHeaders DeleteChapCredentials
instance ToJSON DeleteChapCredentials where
    toJSON DeleteChapCredentials{..} = object
        [ "TargetARN"     .= _dcc1TargetARN
        , "InitiatorName" .= _dcc1InitiatorName
        ]
instance AWSRequest DeleteChapCredentials where
    type Sv DeleteChapCredentials = StorageGateway
    type Rs DeleteChapCredentials = DeleteChapCredentialsResponse
    request  = post "DeleteChapCredentials"
    response = jsonResponse
instance FromJSON DeleteChapCredentialsResponse where
    parseJSON = withObject "DeleteChapCredentialsResponse" $ \o -> DeleteChapCredentialsResponse
        <$> o .:? "InitiatorName"
        <*> o .:? "TargetARN"