{-# 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.KinesisVideo.UpdateDataRetention
(
updateDataRetention
, UpdateDataRetention
, udrStreamARN
, udrStreamName
, udrCurrentVersion
, udrOperation
, udrDataRetentionChangeInHours
, updateDataRetentionResponse
, UpdateDataRetentionResponse
, udrrsResponseStatus
) where
import Network.AWS.KinesisVideo.Types
import Network.AWS.KinesisVideo.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data UpdateDataRetention = UpdateDataRetention'
{ _udrStreamARN :: !(Maybe Text)
, _udrStreamName :: !(Maybe Text)
, _udrCurrentVersion :: !Text
, _udrOperation :: !UpdateDataRetentionOperation
, _udrDataRetentionChangeInHours :: !Nat
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateDataRetention
:: Text
-> UpdateDataRetentionOperation
-> Natural
-> UpdateDataRetention
updateDataRetention pCurrentVersion_ pOperation_ pDataRetentionChangeInHours_ =
UpdateDataRetention'
{ _udrStreamARN = Nothing
, _udrStreamName = Nothing
, _udrCurrentVersion = pCurrentVersion_
, _udrOperation = pOperation_
, _udrDataRetentionChangeInHours = _Nat # pDataRetentionChangeInHours_
}
udrStreamARN :: Lens' UpdateDataRetention (Maybe Text)
udrStreamARN = lens _udrStreamARN (\ s a -> s{_udrStreamARN = a})
udrStreamName :: Lens' UpdateDataRetention (Maybe Text)
udrStreamName = lens _udrStreamName (\ s a -> s{_udrStreamName = a})
udrCurrentVersion :: Lens' UpdateDataRetention Text
udrCurrentVersion = lens _udrCurrentVersion (\ s a -> s{_udrCurrentVersion = a})
udrOperation :: Lens' UpdateDataRetention UpdateDataRetentionOperation
udrOperation = lens _udrOperation (\ s a -> s{_udrOperation = a})
udrDataRetentionChangeInHours :: Lens' UpdateDataRetention Natural
udrDataRetentionChangeInHours = lens _udrDataRetentionChangeInHours (\ s a -> s{_udrDataRetentionChangeInHours = a}) . _Nat
instance AWSRequest UpdateDataRetention where
type Rs UpdateDataRetention =
UpdateDataRetentionResponse
request = postJSON kinesisVideo
response
= receiveEmpty
(\ s h x ->
UpdateDataRetentionResponse' <$> (pure (fromEnum s)))
instance Hashable UpdateDataRetention where
instance NFData UpdateDataRetention where
instance ToHeaders UpdateDataRetention where
toHeaders = const mempty
instance ToJSON UpdateDataRetention where
toJSON UpdateDataRetention'{..}
= object
(catMaybes
[("StreamARN" .=) <$> _udrStreamARN,
("StreamName" .=) <$> _udrStreamName,
Just ("CurrentVersion" .= _udrCurrentVersion),
Just ("Operation" .= _udrOperation),
Just
("DataRetentionChangeInHours" .=
_udrDataRetentionChangeInHours)])
instance ToPath UpdateDataRetention where
toPath = const "/updateDataRetention"
instance ToQuery UpdateDataRetention where
toQuery = const mempty
newtype UpdateDataRetentionResponse = UpdateDataRetentionResponse'
{ _udrrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateDataRetentionResponse
:: Int
-> UpdateDataRetentionResponse
updateDataRetentionResponse pResponseStatus_ =
UpdateDataRetentionResponse' {_udrrsResponseStatus = pResponseStatus_}
udrrsResponseStatus :: Lens' UpdateDataRetentionResponse Int
udrrsResponseStatus = lens _udrrsResponseStatus (\ s a -> s{_udrrsResponseStatus = a})
instance NFData UpdateDataRetentionResponse where