module Aws.Ec2.Commands.CreateTags where
import Data.Aeson (Value (..), FromJSON, parseJSON)
import Aws.Ec2.TH
import qualified Network.HTTP.Types as HTTP
data CreateTags = CreateTags
{ ct_resources :: [Text]
, ct_tags :: [Tag]
} deriving (Show)
enumerateTags :: [Tag] -> HTTP.Query
enumerateTags = enumerateLists "Tag." . fmap unroll
where
unroll (Tag key value) = [ ("Key", qArg key)
, ("Value", qArg value)
]
instance SignQuery CreateTags where
type ServiceConfiguration CreateTags = EC2Configuration
signQuery CreateTags{..} = ec2SignQuery $
[ ("Action", qArg "CreateTags")
, defVersion
] +++ enumerate "ResourceId" ct_resources qArg
+++ enumerateTags ct_tags
ec2ValueTransaction ''CreateTags "return"
newtype CreateTagsResponse = CreateTagsResponse {ctrReturn :: Bool} deriving (Show)
instance FromJSON CreateTagsResponse where
parseJSON v = CreateTagsResponse <$>
(readBool <$> parseJSON v)