{-# 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.MediaLive.UpdateInput
(
updateInput
, UpdateInput
, uiSources
, uiInputSecurityGroups
, uiDestinations
, uiName
, uiInputId
, updateInputResponse
, UpdateInputResponse
, uirsInput
, uirsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.MediaLive.Types
import Network.AWS.MediaLive.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data UpdateInput = UpdateInput'
{ _uiSources :: !(Maybe [InputSourceRequest])
, _uiInputSecurityGroups :: !(Maybe [Text])
, _uiDestinations :: !(Maybe [InputDestinationRequest])
, _uiName :: !(Maybe Text)
, _uiInputId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateInput
:: Text
-> UpdateInput
updateInput pInputId_ =
UpdateInput'
{ _uiSources = Nothing
, _uiInputSecurityGroups = Nothing
, _uiDestinations = Nothing
, _uiName = Nothing
, _uiInputId = pInputId_
}
uiSources :: Lens' UpdateInput [InputSourceRequest]
uiSources = lens _uiSources (\ s a -> s{_uiSources = a}) . _Default . _Coerce
uiInputSecurityGroups :: Lens' UpdateInput [Text]
uiInputSecurityGroups = lens _uiInputSecurityGroups (\ s a -> s{_uiInputSecurityGroups = a}) . _Default . _Coerce
uiDestinations :: Lens' UpdateInput [InputDestinationRequest]
uiDestinations = lens _uiDestinations (\ s a -> s{_uiDestinations = a}) . _Default . _Coerce
uiName :: Lens' UpdateInput (Maybe Text)
uiName = lens _uiName (\ s a -> s{_uiName = a})
uiInputId :: Lens' UpdateInput Text
uiInputId = lens _uiInputId (\ s a -> s{_uiInputId = a})
instance AWSRequest UpdateInput where
type Rs UpdateInput = UpdateInputResponse
request = putJSON mediaLive
response
= receiveJSON
(\ s h x ->
UpdateInputResponse' <$>
(x .?> "input") <*> (pure (fromEnum s)))
instance Hashable UpdateInput where
instance NFData UpdateInput where
instance ToHeaders UpdateInput where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateInput where
toJSON UpdateInput'{..}
= object
(catMaybes
[("sources" .=) <$> _uiSources,
("inputSecurityGroups" .=) <$>
_uiInputSecurityGroups,
("destinations" .=) <$> _uiDestinations,
("name" .=) <$> _uiName])
instance ToPath UpdateInput where
toPath UpdateInput'{..}
= mconcat ["/prod/inputs/", toBS _uiInputId]
instance ToQuery UpdateInput where
toQuery = const mempty
data UpdateInputResponse = UpdateInputResponse'
{ _uirsInput :: !(Maybe Input)
, _uirsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateInputResponse
:: Int
-> UpdateInputResponse
updateInputResponse pResponseStatus_ =
UpdateInputResponse'
{_uirsInput = Nothing, _uirsResponseStatus = pResponseStatus_}
uirsInput :: Lens' UpdateInputResponse (Maybe Input)
uirsInput = lens _uirsInput (\ s a -> s{_uirsInput = a})
uirsResponseStatus :: Lens' UpdateInputResponse Int
uirsResponseStatus = lens _uirsResponseStatus (\ s a -> s{_uirsResponseStatus = a})
instance NFData UpdateInputResponse where