module Network.AWS.Route53.ChangeTagsForResource
(
changeTagsForResource
, ChangeTagsForResource
, ctfrRemoveTagKeys
, ctfrAddTags
, ctfrResourceType
, ctfrResourceId
, changeTagsForResourceResponse
, ChangeTagsForResourceResponse
, ctfrrsResponseStatus
) where
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Route53.Types
import Network.AWS.Route53.Types.Product
data ChangeTagsForResource = ChangeTagsForResource'
{ _ctfrRemoveTagKeys :: !(Maybe (List1 Text))
, _ctfrAddTags :: !(Maybe (List1 Tag))
, _ctfrResourceType :: !TagResourceType
, _ctfrResourceId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
changeTagsForResource
:: TagResourceType
-> Text
-> ChangeTagsForResource
changeTagsForResource pResourceType_ pResourceId_ =
ChangeTagsForResource'
{ _ctfrRemoveTagKeys = Nothing
, _ctfrAddTags = Nothing
, _ctfrResourceType = pResourceType_
, _ctfrResourceId = pResourceId_
}
ctfrRemoveTagKeys :: Lens' ChangeTagsForResource (Maybe (NonEmpty Text))
ctfrRemoveTagKeys = lens _ctfrRemoveTagKeys (\ s a -> s{_ctfrRemoveTagKeys = a}) . mapping _List1;
ctfrAddTags :: Lens' ChangeTagsForResource (Maybe (NonEmpty Tag))
ctfrAddTags = lens _ctfrAddTags (\ s a -> s{_ctfrAddTags = a}) . mapping _List1;
ctfrResourceType :: Lens' ChangeTagsForResource TagResourceType
ctfrResourceType = lens _ctfrResourceType (\ s a -> s{_ctfrResourceType = a});
ctfrResourceId :: Lens' ChangeTagsForResource Text
ctfrResourceId = lens _ctfrResourceId (\ s a -> s{_ctfrResourceId = a});
instance AWSRequest ChangeTagsForResource where
type Rs ChangeTagsForResource =
ChangeTagsForResourceResponse
request = postXML route53
response
= receiveEmpty
(\ s h x ->
ChangeTagsForResourceResponse' <$>
(pure (fromEnum s)))
instance ToElement ChangeTagsForResource where
toElement
= mkElement
"{https://route53.amazonaws.com/doc/2013-04-01/}ChangeTagsForResourceRequest"
instance ToHeaders ChangeTagsForResource where
toHeaders = const mempty
instance ToPath ChangeTagsForResource where
toPath ChangeTagsForResource'{..}
= mconcat
["/2013-04-01/tags/", toBS _ctfrResourceType, "/",
toBS _ctfrResourceId]
instance ToQuery ChangeTagsForResource where
toQuery = const mempty
instance ToXML ChangeTagsForResource where
toXML ChangeTagsForResource'{..}
= mconcat
["RemoveTagKeys" @=
toXML (toXMLList "Key" <$> _ctfrRemoveTagKeys),
"AddTags" @=
toXML (toXMLList "Tag" <$> _ctfrAddTags)]
newtype ChangeTagsForResourceResponse = ChangeTagsForResourceResponse'
{ _ctfrrsResponseStatus :: Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
changeTagsForResourceResponse
:: Int
-> ChangeTagsForResourceResponse
changeTagsForResourceResponse pResponseStatus_ =
ChangeTagsForResourceResponse'
{ _ctfrrsResponseStatus = pResponseStatus_
}
ctfrrsResponseStatus :: Lens' ChangeTagsForResourceResponse Int
ctfrrsResponseStatus = lens _ctfrrsResponseStatus (\ s a -> s{_ctfrrsResponseStatus = a});