module Network.AWS.Kinesis.Types.Product where
import Network.AWS.Kinesis.Types.Sum
import Network.AWS.Lens
import Network.AWS.Prelude
newtype EnhancedMetrics = EnhancedMetrics'
{ _emShardLevelMetrics :: Maybe (List1 MetricsName)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
enhancedMetrics
:: EnhancedMetrics
enhancedMetrics =
EnhancedMetrics'
{ _emShardLevelMetrics = Nothing
}
emShardLevelMetrics :: Lens' EnhancedMetrics (Maybe (NonEmpty MetricsName))
emShardLevelMetrics = lens _emShardLevelMetrics (\ s a -> s{_emShardLevelMetrics = a}) . mapping _List1;
instance FromJSON EnhancedMetrics where
parseJSON
= withObject "EnhancedMetrics"
(\ x ->
EnhancedMetrics' <$> (x .:? "ShardLevelMetrics"))
instance Hashable EnhancedMetrics
instance NFData EnhancedMetrics
data EnhancedMonitoringOutput = EnhancedMonitoringOutput'
{ _emoDesiredShardLevelMetrics :: !(Maybe (List1 MetricsName))
, _emoCurrentShardLevelMetrics :: !(Maybe (List1 MetricsName))
, _emoStreamName :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
enhancedMonitoringOutput
:: EnhancedMonitoringOutput
enhancedMonitoringOutput =
EnhancedMonitoringOutput'
{ _emoDesiredShardLevelMetrics = Nothing
, _emoCurrentShardLevelMetrics = Nothing
, _emoStreamName = Nothing
}
emoDesiredShardLevelMetrics :: Lens' EnhancedMonitoringOutput (Maybe (NonEmpty MetricsName))
emoDesiredShardLevelMetrics = lens _emoDesiredShardLevelMetrics (\ s a -> s{_emoDesiredShardLevelMetrics = a}) . mapping _List1;
emoCurrentShardLevelMetrics :: Lens' EnhancedMonitoringOutput (Maybe (NonEmpty MetricsName))
emoCurrentShardLevelMetrics = lens _emoCurrentShardLevelMetrics (\ s a -> s{_emoCurrentShardLevelMetrics = a}) . mapping _List1;
emoStreamName :: Lens' EnhancedMonitoringOutput (Maybe Text)
emoStreamName = lens _emoStreamName (\ s a -> s{_emoStreamName = a});
instance FromJSON EnhancedMonitoringOutput where
parseJSON
= withObject "EnhancedMonitoringOutput"
(\ x ->
EnhancedMonitoringOutput' <$>
(x .:? "DesiredShardLevelMetrics") <*>
(x .:? "CurrentShardLevelMetrics")
<*> (x .:? "StreamName"))
instance Hashable EnhancedMonitoringOutput
instance NFData EnhancedMonitoringOutput
data HashKeyRange = HashKeyRange'
{ _hkrStartingHashKey :: !Text
, _hkrEndingHashKey :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
hashKeyRange
:: Text
-> Text
-> HashKeyRange
hashKeyRange pStartingHashKey_ pEndingHashKey_ =
HashKeyRange'
{ _hkrStartingHashKey = pStartingHashKey_
, _hkrEndingHashKey = pEndingHashKey_
}
hkrStartingHashKey :: Lens' HashKeyRange Text
hkrStartingHashKey = lens _hkrStartingHashKey (\ s a -> s{_hkrStartingHashKey = a});
hkrEndingHashKey :: Lens' HashKeyRange Text
hkrEndingHashKey = lens _hkrEndingHashKey (\ s a -> s{_hkrEndingHashKey = a});
instance FromJSON HashKeyRange where
parseJSON
= withObject "HashKeyRange"
(\ x ->
HashKeyRange' <$>
(x .: "StartingHashKey") <*> (x .: "EndingHashKey"))
instance Hashable HashKeyRange
instance NFData HashKeyRange
data PutRecordsRequestEntry = PutRecordsRequestEntry'
{ _prreExplicitHashKey :: !(Maybe Text)
, _prreData :: !Base64
, _prrePartitionKey :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
putRecordsRequestEntry
:: ByteString
-> Text
-> PutRecordsRequestEntry
putRecordsRequestEntry pData_ pPartitionKey_ =
PutRecordsRequestEntry'
{ _prreExplicitHashKey = Nothing
, _prreData = _Base64 # pData_
, _prrePartitionKey = pPartitionKey_
}
prreExplicitHashKey :: Lens' PutRecordsRequestEntry (Maybe Text)
prreExplicitHashKey = lens _prreExplicitHashKey (\ s a -> s{_prreExplicitHashKey = a});
prreData :: Lens' PutRecordsRequestEntry ByteString
prreData = lens _prreData (\ s a -> s{_prreData = a}) . _Base64;
prrePartitionKey :: Lens' PutRecordsRequestEntry Text
prrePartitionKey = lens _prrePartitionKey (\ s a -> s{_prrePartitionKey = a});
instance Hashable PutRecordsRequestEntry
instance NFData PutRecordsRequestEntry
instance ToJSON PutRecordsRequestEntry where
toJSON PutRecordsRequestEntry'{..}
= object
(catMaybes
[("ExplicitHashKey" .=) <$> _prreExplicitHashKey,
Just ("Data" .= _prreData),
Just ("PartitionKey" .= _prrePartitionKey)])
data PutRecordsResultEntry = PutRecordsResultEntry'
{ _prreSequenceNumber :: !(Maybe Text)
, _prreErrorCode :: !(Maybe Text)
, _prreErrorMessage :: !(Maybe Text)
, _prreShardId :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
putRecordsResultEntry
:: PutRecordsResultEntry
putRecordsResultEntry =
PutRecordsResultEntry'
{ _prreSequenceNumber = Nothing
, _prreErrorCode = Nothing
, _prreErrorMessage = Nothing
, _prreShardId = Nothing
}
prreSequenceNumber :: Lens' PutRecordsResultEntry (Maybe Text)
prreSequenceNumber = lens _prreSequenceNumber (\ s a -> s{_prreSequenceNumber = a});
prreErrorCode :: Lens' PutRecordsResultEntry (Maybe Text)
prreErrorCode = lens _prreErrorCode (\ s a -> s{_prreErrorCode = a});
prreErrorMessage :: Lens' PutRecordsResultEntry (Maybe Text)
prreErrorMessage = lens _prreErrorMessage (\ s a -> s{_prreErrorMessage = a});
prreShardId :: Lens' PutRecordsResultEntry (Maybe Text)
prreShardId = lens _prreShardId (\ s a -> s{_prreShardId = a});
instance FromJSON PutRecordsResultEntry where
parseJSON
= withObject "PutRecordsResultEntry"
(\ x ->
PutRecordsResultEntry' <$>
(x .:? "SequenceNumber") <*> (x .:? "ErrorCode") <*>
(x .:? "ErrorMessage")
<*> (x .:? "ShardId"))
instance Hashable PutRecordsResultEntry
instance NFData PutRecordsResultEntry
data Record = Record'
{ _rApproximateArrivalTimestamp :: !(Maybe POSIX)
, _rSequenceNumber :: !Text
, _rData :: !Base64
, _rPartitionKey :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
record
:: Text
-> ByteString
-> Text
-> Record
record pSequenceNumber_ pData_ pPartitionKey_ =
Record'
{ _rApproximateArrivalTimestamp = Nothing
, _rSequenceNumber = pSequenceNumber_
, _rData = _Base64 # pData_
, _rPartitionKey = pPartitionKey_
}
rApproximateArrivalTimestamp :: Lens' Record (Maybe UTCTime)
rApproximateArrivalTimestamp = lens _rApproximateArrivalTimestamp (\ s a -> s{_rApproximateArrivalTimestamp = a}) . mapping _Time;
rSequenceNumber :: Lens' Record Text
rSequenceNumber = lens _rSequenceNumber (\ s a -> s{_rSequenceNumber = a});
rData :: Lens' Record ByteString
rData = lens _rData (\ s a -> s{_rData = a}) . _Base64;
rPartitionKey :: Lens' Record Text
rPartitionKey = lens _rPartitionKey (\ s a -> s{_rPartitionKey = a});
instance FromJSON Record where
parseJSON
= withObject "Record"
(\ x ->
Record' <$>
(x .:? "ApproximateArrivalTimestamp") <*>
(x .: "SequenceNumber")
<*> (x .: "Data")
<*> (x .: "PartitionKey"))
instance Hashable Record
instance NFData Record
data SequenceNumberRange = SequenceNumberRange'
{ _snrEndingSequenceNumber :: !(Maybe Text)
, _snrStartingSequenceNumber :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
sequenceNumberRange
:: Text
-> SequenceNumberRange
sequenceNumberRange pStartingSequenceNumber_ =
SequenceNumberRange'
{ _snrEndingSequenceNumber = Nothing
, _snrStartingSequenceNumber = pStartingSequenceNumber_
}
snrEndingSequenceNumber :: Lens' SequenceNumberRange (Maybe Text)
snrEndingSequenceNumber = lens _snrEndingSequenceNumber (\ s a -> s{_snrEndingSequenceNumber = a});
snrStartingSequenceNumber :: Lens' SequenceNumberRange Text
snrStartingSequenceNumber = lens _snrStartingSequenceNumber (\ s a -> s{_snrStartingSequenceNumber = a});
instance FromJSON SequenceNumberRange where
parseJSON
= withObject "SequenceNumberRange"
(\ x ->
SequenceNumberRange' <$>
(x .:? "EndingSequenceNumber") <*>
(x .: "StartingSequenceNumber"))
instance Hashable SequenceNumberRange
instance NFData SequenceNumberRange
data Shard = Shard'
{ _sAdjacentParentShardId :: !(Maybe Text)
, _sParentShardId :: !(Maybe Text)
, _sShardId :: !Text
, _sHashKeyRange :: !HashKeyRange
, _sSequenceNumberRange :: !SequenceNumberRange
} deriving (Eq,Read,Show,Data,Typeable,Generic)
shard
:: Text
-> HashKeyRange
-> SequenceNumberRange
-> Shard
shard pShardId_ pHashKeyRange_ pSequenceNumberRange_ =
Shard'
{ _sAdjacentParentShardId = Nothing
, _sParentShardId = Nothing
, _sShardId = pShardId_
, _sHashKeyRange = pHashKeyRange_
, _sSequenceNumberRange = pSequenceNumberRange_
}
sAdjacentParentShardId :: Lens' Shard (Maybe Text)
sAdjacentParentShardId = lens _sAdjacentParentShardId (\ s a -> s{_sAdjacentParentShardId = a});
sParentShardId :: Lens' Shard (Maybe Text)
sParentShardId = lens _sParentShardId (\ s a -> s{_sParentShardId = a});
sShardId :: Lens' Shard Text
sShardId = lens _sShardId (\ s a -> s{_sShardId = a});
sHashKeyRange :: Lens' Shard HashKeyRange
sHashKeyRange = lens _sHashKeyRange (\ s a -> s{_sHashKeyRange = a});
sSequenceNumberRange :: Lens' Shard SequenceNumberRange
sSequenceNumberRange = lens _sSequenceNumberRange (\ s a -> s{_sSequenceNumberRange = a});
instance FromJSON Shard where
parseJSON
= withObject "Shard"
(\ x ->
Shard' <$>
(x .:? "AdjacentParentShardId") <*>
(x .:? "ParentShardId")
<*> (x .: "ShardId")
<*> (x .: "HashKeyRange")
<*> (x .: "SequenceNumberRange"))
instance Hashable Shard
instance NFData Shard
data StreamDescription = StreamDescription'
{ _sdStreamName :: !Text
, _sdStreamARN :: !Text
, _sdStreamStatus :: !StreamStatus
, _sdShards :: ![Shard]
, _sdHasMoreShards :: !Bool
, _sdRetentionPeriodHours :: !Nat
, _sdEnhancedMonitoring :: ![EnhancedMetrics]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
streamDescription
:: Text
-> Text
-> StreamStatus
-> Bool
-> Natural
-> StreamDescription
streamDescription pStreamName_ pStreamARN_ pStreamStatus_ pHasMoreShards_ pRetentionPeriodHours_ =
StreamDescription'
{ _sdStreamName = pStreamName_
, _sdStreamARN = pStreamARN_
, _sdStreamStatus = pStreamStatus_
, _sdShards = mempty
, _sdHasMoreShards = pHasMoreShards_
, _sdRetentionPeriodHours = _Nat # pRetentionPeriodHours_
, _sdEnhancedMonitoring = mempty
}
sdStreamName :: Lens' StreamDescription Text
sdStreamName = lens _sdStreamName (\ s a -> s{_sdStreamName = a});
sdStreamARN :: Lens' StreamDescription Text
sdStreamARN = lens _sdStreamARN (\ s a -> s{_sdStreamARN = a});
sdStreamStatus :: Lens' StreamDescription StreamStatus
sdStreamStatus = lens _sdStreamStatus (\ s a -> s{_sdStreamStatus = a});
sdShards :: Lens' StreamDescription [Shard]
sdShards = lens _sdShards (\ s a -> s{_sdShards = a}) . _Coerce;
sdHasMoreShards :: Lens' StreamDescription Bool
sdHasMoreShards = lens _sdHasMoreShards (\ s a -> s{_sdHasMoreShards = a});
sdRetentionPeriodHours :: Lens' StreamDescription Natural
sdRetentionPeriodHours = lens _sdRetentionPeriodHours (\ s a -> s{_sdRetentionPeriodHours = a}) . _Nat;
sdEnhancedMonitoring :: Lens' StreamDescription [EnhancedMetrics]
sdEnhancedMonitoring = lens _sdEnhancedMonitoring (\ s a -> s{_sdEnhancedMonitoring = a}) . _Coerce;
instance FromJSON StreamDescription where
parseJSON
= withObject "StreamDescription"
(\ x ->
StreamDescription' <$>
(x .: "StreamName") <*> (x .: "StreamARN") <*>
(x .: "StreamStatus")
<*> (x .:? "Shards" .!= mempty)
<*> (x .: "HasMoreShards")
<*> (x .: "RetentionPeriodHours")
<*> (x .:? "EnhancedMonitoring" .!= mempty))
instance Hashable StreamDescription
instance NFData StreamDescription
data Tag = Tag'
{ _tagValue :: !(Maybe Text)
, _tagKey :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
tag
:: Text
-> Tag
tag pKey_ =
Tag'
{ _tagValue = Nothing
, _tagKey = pKey_
}
tagValue :: Lens' Tag (Maybe Text)
tagValue = lens _tagValue (\ s a -> s{_tagValue = a});
tagKey :: Lens' Tag Text
tagKey = lens _tagKey (\ s a -> s{_tagKey = a});
instance FromJSON Tag where
parseJSON
= withObject "Tag"
(\ x -> Tag' <$> (x .:? "Value") <*> (x .: "Key"))
instance Hashable Tag
instance NFData Tag