{-# 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.IoT.UpdateStream
(
updateStream
, UpdateStream
, usFiles
, usDescription
, usRoleARN
, usStreamId
, updateStreamResponse
, UpdateStreamResponse
, usrsStreamVersion
, usrsStreamARN
, usrsDescription
, usrsStreamId
, usrsResponseStatus
) where
import Network.AWS.IoT.Types
import Network.AWS.IoT.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data UpdateStream = UpdateStream'
{ _usFiles :: !(Maybe (List1 StreamFile))
, _usDescription :: !(Maybe Text)
, _usRoleARN :: !(Maybe Text)
, _usStreamId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateStream
:: Text
-> UpdateStream
updateStream pStreamId_ =
UpdateStream'
{ _usFiles = Nothing
, _usDescription = Nothing
, _usRoleARN = Nothing
, _usStreamId = pStreamId_
}
usFiles :: Lens' UpdateStream (Maybe (NonEmpty StreamFile))
usFiles = lens _usFiles (\ s a -> s{_usFiles = a}) . mapping _List1
usDescription :: Lens' UpdateStream (Maybe Text)
usDescription = lens _usDescription (\ s a -> s{_usDescription = a})
usRoleARN :: Lens' UpdateStream (Maybe Text)
usRoleARN = lens _usRoleARN (\ s a -> s{_usRoleARN = a})
usStreamId :: Lens' UpdateStream Text
usStreamId = lens _usStreamId (\ s a -> s{_usStreamId = a})
instance AWSRequest UpdateStream where
type Rs UpdateStream = UpdateStreamResponse
request = putJSON ioT
response
= receiveJSON
(\ s h x ->
UpdateStreamResponse' <$>
(x .?> "streamVersion") <*> (x .?> "streamArn") <*>
(x .?> "description")
<*> (x .?> "streamId")
<*> (pure (fromEnum s)))
instance Hashable UpdateStream where
instance NFData UpdateStream where
instance ToHeaders UpdateStream where
toHeaders = const mempty
instance ToJSON UpdateStream where
toJSON UpdateStream'{..}
= object
(catMaybes
[("files" .=) <$> _usFiles,
("description" .=) <$> _usDescription,
("roleArn" .=) <$> _usRoleARN])
instance ToPath UpdateStream where
toPath UpdateStream'{..}
= mconcat ["/streams/", toBS _usStreamId]
instance ToQuery UpdateStream where
toQuery = const mempty
data UpdateStreamResponse = UpdateStreamResponse'
{ _usrsStreamVersion :: !(Maybe Nat)
, _usrsStreamARN :: !(Maybe Text)
, _usrsDescription :: !(Maybe Text)
, _usrsStreamId :: !(Maybe Text)
, _usrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateStreamResponse
:: Int
-> UpdateStreamResponse
updateStreamResponse pResponseStatus_ =
UpdateStreamResponse'
{ _usrsStreamVersion = Nothing
, _usrsStreamARN = Nothing
, _usrsDescription = Nothing
, _usrsStreamId = Nothing
, _usrsResponseStatus = pResponseStatus_
}
usrsStreamVersion :: Lens' UpdateStreamResponse (Maybe Natural)
usrsStreamVersion = lens _usrsStreamVersion (\ s a -> s{_usrsStreamVersion = a}) . mapping _Nat
usrsStreamARN :: Lens' UpdateStreamResponse (Maybe Text)
usrsStreamARN = lens _usrsStreamARN (\ s a -> s{_usrsStreamARN = a})
usrsDescription :: Lens' UpdateStreamResponse (Maybe Text)
usrsDescription = lens _usrsDescription (\ s a -> s{_usrsDescription = a})
usrsStreamId :: Lens' UpdateStreamResponse (Maybe Text)
usrsStreamId = lens _usrsStreamId (\ s a -> s{_usrsStreamId = a})
usrsResponseStatus :: Lens' UpdateStreamResponse Int
usrsResponseStatus = lens _usrsResponseStatus (\ s a -> s{_usrsResponseStatus = a})
instance NFData UpdateStreamResponse where