{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} module Aws.ElasticTranscoder.Commands.CreatePreset ( CreatePreset(..) , CreatePresetResponse(..) ) where import Aws.Core import Aws.ElasticTranscoder.Core import Control.Applicative import Data.Aeson import qualified Data.Text as T data CreatePreset = CreatePreset { cptName :: PresetName , cptDescription :: T.Text , cptContainer :: Container , cptAudio :: Audio , cptVideo :: Video , cptThumbnails :: Thumbnails } deriving (Show,Eq) data CreatePresetResponse = CreatePresetResponse { cptrName :: PresetName , cptrDescription :: T.Text , cptrContainer :: Container , cptrAudio :: Audio , cptrVideo :: Video , cptrThumbnails :: Thumbnails , cptrId :: PresetId , cptrType :: PresetType , cptrWarning :: T.Text } deriving (Show,Eq) instance SignQuery CreatePreset where type ServiceConfiguration CreatePreset = EtsConfiguration signQuery CreatePreset{..} = etsSignQuery EtsQuery { etsqMethod = Post , etsqRequest = "presets" , etsqQuery = [] , etsqBody = Just $ toJSON $ Preset cptName cptDescription cptContainer cptAudio cptVideo cptThumbnails } instance ResponseConsumer CreatePreset CreatePresetResponse where type ResponseMetadata CreatePresetResponse = EtsMetadata responseConsumer _ mref = etsResponseConsumer mref $ \rsp -> cnv <$> jsonConsumer rsp where cnv (PresetSingle(PresetResponse a b c d e f g h i)) = CreatePresetResponse a b c d e f g h i instance Transaction CreatePreset CreatePresetResponse instance AsMemoryResponse CreatePresetResponse where type MemoryResponse CreatePresetResponse = CreatePresetResponse loadToMemory = return