{-# 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.Glacier.AddTagsToVault
(
addTagsToVault
, AddTagsToVault
, attvTags
, attvAccountId
, attvVaultName
, addTagsToVaultResponse
, AddTagsToVaultResponse
) where
import Network.AWS.Glacier.Types
import Network.AWS.Glacier.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data AddTagsToVault = AddTagsToVault'
{ _attvTags :: !(Maybe (Map Text Text))
, _attvAccountId :: !Text
, _attvVaultName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
addTagsToVault
:: Text
-> Text
-> AddTagsToVault
addTagsToVault pAccountId_ pVaultName_ =
AddTagsToVault'
{ _attvTags = Nothing
, _attvAccountId = pAccountId_
, _attvVaultName = pVaultName_
}
attvTags :: Lens' AddTagsToVault (HashMap Text Text)
attvTags = lens _attvTags (\ s a -> s{_attvTags = a}) . _Default . _Map;
attvAccountId :: Lens' AddTagsToVault Text
attvAccountId = lens _attvAccountId (\ s a -> s{_attvAccountId = a});
attvVaultName :: Lens' AddTagsToVault Text
attvVaultName = lens _attvVaultName (\ s a -> s{_attvVaultName = a});
instance AWSRequest AddTagsToVault where
type Rs AddTagsToVault = AddTagsToVaultResponse
request = postJSON glacier
response = receiveNull AddTagsToVaultResponse'
instance Hashable AddTagsToVault
instance NFData AddTagsToVault
instance ToHeaders AddTagsToVault where
toHeaders = const mempty
instance ToJSON AddTagsToVault where
toJSON AddTagsToVault'{..}
= object (catMaybes [("Tags" .=) <$> _attvTags])
instance ToPath AddTagsToVault where
toPath AddTagsToVault'{..}
= mconcat
["/", toBS _attvAccountId, "/vaults/",
toBS _attvVaultName, "/tags"]
instance ToQuery AddTagsToVault where
toQuery = const (mconcat ["operation=add"])
data AddTagsToVaultResponse =
AddTagsToVaultResponse'
deriving (Eq,Read,Show,Data,Typeable,Generic)
addTagsToVaultResponse
:: AddTagsToVaultResponse
addTagsToVaultResponse = AddTagsToVaultResponse'
instance NFData AddTagsToVaultResponse