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