{-# 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.CloudDirectory.DetachObject
(
detachObject
, DetachObject
, detDirectoryARN
, detParentReference
, detLinkName
, detachObjectResponse
, DetachObjectResponse
, detrsDetachedObjectIdentifier
, detrsResponseStatus
) where
import Network.AWS.CloudDirectory.Types
import Network.AWS.CloudDirectory.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DetachObject = DetachObject'
{ _detDirectoryARN :: !Text
, _detParentReference :: !ObjectReference
, _detLinkName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
detachObject
:: Text
-> ObjectReference
-> Text
-> DetachObject
detachObject pDirectoryARN_ pParentReference_ pLinkName_ =
DetachObject'
{ _detDirectoryARN = pDirectoryARN_
, _detParentReference = pParentReference_
, _detLinkName = pLinkName_
}
detDirectoryARN :: Lens' DetachObject Text
detDirectoryARN = lens _detDirectoryARN (\ s a -> s{_detDirectoryARN = a})
detParentReference :: Lens' DetachObject ObjectReference
detParentReference = lens _detParentReference (\ s a -> s{_detParentReference = a})
detLinkName :: Lens' DetachObject Text
detLinkName = lens _detLinkName (\ s a -> s{_detLinkName = a})
instance AWSRequest DetachObject where
type Rs DetachObject = DetachObjectResponse
request = putJSON cloudDirectory
response
= receiveJSON
(\ s h x ->
DetachObjectResponse' <$>
(x .?> "DetachedObjectIdentifier") <*>
(pure (fromEnum s)))
instance Hashable DetachObject where
instance NFData DetachObject where
instance ToHeaders DetachObject where
toHeaders DetachObject'{..}
= mconcat
["x-amz-data-partition" =# _detDirectoryARN]
instance ToJSON DetachObject where
toJSON DetachObject'{..}
= object
(catMaybes
[Just ("ParentReference" .= _detParentReference),
Just ("LinkName" .= _detLinkName)])
instance ToPath DetachObject where
toPath
= const
"/amazonclouddirectory/2017-01-11/object/detach"
instance ToQuery DetachObject where
toQuery = const mempty
data DetachObjectResponse = DetachObjectResponse'
{ _detrsDetachedObjectIdentifier :: !(Maybe Text)
, _detrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
detachObjectResponse
:: Int
-> DetachObjectResponse
detachObjectResponse pResponseStatus_ =
DetachObjectResponse'
{ _detrsDetachedObjectIdentifier = Nothing
, _detrsResponseStatus = pResponseStatus_
}
detrsDetachedObjectIdentifier :: Lens' DetachObjectResponse (Maybe Text)
detrsDetachedObjectIdentifier = lens _detrsDetachedObjectIdentifier (\ s a -> s{_detrsDetachedObjectIdentifier = a})
detrsResponseStatus :: Lens' DetachObjectResponse Int
detrsResponseStatus = lens _detrsResponseStatus (\ s a -> s{_detrsResponseStatus = a})
instance NFData DetachObjectResponse where