{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.AWS.KinesisVideo.Types.Product where
import Network.AWS.KinesisVideo.Types.Sum
import Network.AWS.Lens
import Network.AWS.Prelude
data StreamInfo = StreamInfo'
{ _siCreationTime :: !(Maybe POSIX)
, _siStatus :: !(Maybe StreamStatus)
, _siMediaType :: !(Maybe Text)
, _siDataRetentionInHours :: !(Maybe Nat)
, _siStreamARN :: !(Maybe Text)
, _siKMSKeyId :: !(Maybe Text)
, _siDeviceName :: !(Maybe Text)
, _siVersion :: !(Maybe Text)
, _siStreamName :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
streamInfo
:: StreamInfo
streamInfo =
StreamInfo'
{ _siCreationTime = Nothing
, _siStatus = Nothing
, _siMediaType = Nothing
, _siDataRetentionInHours = Nothing
, _siStreamARN = Nothing
, _siKMSKeyId = Nothing
, _siDeviceName = Nothing
, _siVersion = Nothing
, _siStreamName = Nothing
}
siCreationTime :: Lens' StreamInfo (Maybe UTCTime)
siCreationTime = lens _siCreationTime (\ s a -> s{_siCreationTime = a}) . mapping _Time
siStatus :: Lens' StreamInfo (Maybe StreamStatus)
siStatus = lens _siStatus (\ s a -> s{_siStatus = a})
siMediaType :: Lens' StreamInfo (Maybe Text)
siMediaType = lens _siMediaType (\ s a -> s{_siMediaType = a})
siDataRetentionInHours :: Lens' StreamInfo (Maybe Natural)
siDataRetentionInHours = lens _siDataRetentionInHours (\ s a -> s{_siDataRetentionInHours = a}) . mapping _Nat
siStreamARN :: Lens' StreamInfo (Maybe Text)
siStreamARN = lens _siStreamARN (\ s a -> s{_siStreamARN = a})
siKMSKeyId :: Lens' StreamInfo (Maybe Text)
siKMSKeyId = lens _siKMSKeyId (\ s a -> s{_siKMSKeyId = a})
siDeviceName :: Lens' StreamInfo (Maybe Text)
siDeviceName = lens _siDeviceName (\ s a -> s{_siDeviceName = a})
siVersion :: Lens' StreamInfo (Maybe Text)
siVersion = lens _siVersion (\ s a -> s{_siVersion = a})
siStreamName :: Lens' StreamInfo (Maybe Text)
siStreamName = lens _siStreamName (\ s a -> s{_siStreamName = a})
instance FromJSON StreamInfo where
parseJSON
= withObject "StreamInfo"
(\ x ->
StreamInfo' <$>
(x .:? "CreationTime") <*> (x .:? "Status") <*>
(x .:? "MediaType")
<*> (x .:? "DataRetentionInHours")
<*> (x .:? "StreamARN")
<*> (x .:? "KmsKeyId")
<*> (x .:? "DeviceName")
<*> (x .:? "Version")
<*> (x .:? "StreamName"))
instance Hashable StreamInfo where
instance NFData StreamInfo where
data StreamNameCondition = StreamNameCondition'
{ _sncComparisonOperator :: !(Maybe ComparisonOperator)
, _sncComparisonValue :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
streamNameCondition
:: StreamNameCondition
streamNameCondition =
StreamNameCondition'
{_sncComparisonOperator = Nothing, _sncComparisonValue = Nothing}
sncComparisonOperator :: Lens' StreamNameCondition (Maybe ComparisonOperator)
sncComparisonOperator = lens _sncComparisonOperator (\ s a -> s{_sncComparisonOperator = a})
sncComparisonValue :: Lens' StreamNameCondition (Maybe Text)
sncComparisonValue = lens _sncComparisonValue (\ s a -> s{_sncComparisonValue = a})
instance Hashable StreamNameCondition where
instance NFData StreamNameCondition where
instance ToJSON StreamNameCondition where
toJSON StreamNameCondition'{..}
= object
(catMaybes
[("ComparisonOperator" .=) <$>
_sncComparisonOperator,
("ComparisonValue" .=) <$> _sncComparisonValue])