{-# 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.Route53.ChangeTagsForResource
(
changeTagsForResource
, ChangeTagsForResource
, ctfrRemoveTagKeys
, ctfrAddTags
, ctfrResourceType
, ctfrResourceId
, changeTagsForResourceResponse
, ChangeTagsForResourceResponse
, ctfrrsResponseStatus
) where
import Network.AWS.Lens
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 Hashable ChangeTagsForResource where
instance NFData ChangeTagsForResource where
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})
instance NFData ChangeTagsForResourceResponse where