{-# 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.MediaConvert.CreateJobTemplate
(
createJobTemplate
, CreateJobTemplate
, cjtSettings
, cjtCategory
, cjtQueue
, cjtName
, cjtDescription
, createJobTemplateResponse
, CreateJobTemplateResponse
, cjtrsJobTemplate
, cjtrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.MediaConvert.Types
import Network.AWS.MediaConvert.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateJobTemplate = CreateJobTemplate'
{ _cjtSettings :: !(Maybe JobTemplateSettings)
, _cjtCategory :: !(Maybe Text)
, _cjtQueue :: !(Maybe Text)
, _cjtName :: !(Maybe Text)
, _cjtDescription :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createJobTemplate
:: CreateJobTemplate
createJobTemplate =
CreateJobTemplate'
{ _cjtSettings = Nothing
, _cjtCategory = Nothing
, _cjtQueue = Nothing
, _cjtName = Nothing
, _cjtDescription = Nothing
}
cjtSettings :: Lens' CreateJobTemplate (Maybe JobTemplateSettings)
cjtSettings = lens _cjtSettings (\ s a -> s{_cjtSettings = a})
cjtCategory :: Lens' CreateJobTemplate (Maybe Text)
cjtCategory = lens _cjtCategory (\ s a -> s{_cjtCategory = a})
cjtQueue :: Lens' CreateJobTemplate (Maybe Text)
cjtQueue = lens _cjtQueue (\ s a -> s{_cjtQueue = a})
cjtName :: Lens' CreateJobTemplate (Maybe Text)
cjtName = lens _cjtName (\ s a -> s{_cjtName = a})
cjtDescription :: Lens' CreateJobTemplate (Maybe Text)
cjtDescription = lens _cjtDescription (\ s a -> s{_cjtDescription = a})
instance AWSRequest CreateJobTemplate where
type Rs CreateJobTemplate = CreateJobTemplateResponse
request = postJSON mediaConvert
response
= receiveJSON
(\ s h x ->
CreateJobTemplateResponse' <$>
(x .?> "jobTemplate") <*> (pure (fromEnum s)))
instance Hashable CreateJobTemplate where
instance NFData CreateJobTemplate where
instance ToHeaders CreateJobTemplate where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateJobTemplate where
toJSON CreateJobTemplate'{..}
= object
(catMaybes
[("settings" .=) <$> _cjtSettings,
("category" .=) <$> _cjtCategory,
("queue" .=) <$> _cjtQueue, ("name" .=) <$> _cjtName,
("description" .=) <$> _cjtDescription])
instance ToPath CreateJobTemplate where
toPath = const "/2017-08-29/jobTemplates"
instance ToQuery CreateJobTemplate where
toQuery = const mempty
data CreateJobTemplateResponse = CreateJobTemplateResponse'
{ _cjtrsJobTemplate :: !(Maybe JobTemplate)
, _cjtrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createJobTemplateResponse
:: Int
-> CreateJobTemplateResponse
createJobTemplateResponse pResponseStatus_ =
CreateJobTemplateResponse'
{_cjtrsJobTemplate = Nothing, _cjtrsResponseStatus = pResponseStatus_}
cjtrsJobTemplate :: Lens' CreateJobTemplateResponse (Maybe JobTemplate)
cjtrsJobTemplate = lens _cjtrsJobTemplate (\ s a -> s{_cjtrsJobTemplate = a})
cjtrsResponseStatus :: Lens' CreateJobTemplateResponse Int
cjtrsResponseStatus = lens _cjtrsResponseStatus (\ s a -> s{_cjtrsResponseStatus = a})
instance NFData CreateJobTemplateResponse where