{-# 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.KinesisVideoArchivedMedia.ListFragments
(
listFragments
, ListFragments
, lfFragmentSelector
, lfNextToken
, lfMaxResults
, lfStreamName
, listFragmentsResponse
, ListFragmentsResponse
, lfrsNextToken
, lfrsFragments
, lfrsResponseStatus
) where
import Network.AWS.KinesisVideoArchivedMedia.Types
import Network.AWS.KinesisVideoArchivedMedia.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListFragments = ListFragments'
{ _lfFragmentSelector :: !(Maybe FragmentSelector)
, _lfNextToken :: !(Maybe Text)
, _lfMaxResults :: !(Maybe Nat)
, _lfStreamName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listFragments
:: Text
-> ListFragments
listFragments pStreamName_ =
ListFragments'
{ _lfFragmentSelector = Nothing
, _lfNextToken = Nothing
, _lfMaxResults = Nothing
, _lfStreamName = pStreamName_
}
lfFragmentSelector :: Lens' ListFragments (Maybe FragmentSelector)
lfFragmentSelector = lens _lfFragmentSelector (\ s a -> s{_lfFragmentSelector = a})
lfNextToken :: Lens' ListFragments (Maybe Text)
lfNextToken = lens _lfNextToken (\ s a -> s{_lfNextToken = a})
lfMaxResults :: Lens' ListFragments (Maybe Natural)
lfMaxResults = lens _lfMaxResults (\ s a -> s{_lfMaxResults = a}) . mapping _Nat
lfStreamName :: Lens' ListFragments Text
lfStreamName = lens _lfStreamName (\ s a -> s{_lfStreamName = a})
instance AWSRequest ListFragments where
type Rs ListFragments = ListFragmentsResponse
request = postJSON kinesisVideoArchivedMedia
response
= receiveJSON
(\ s h x ->
ListFragmentsResponse' <$>
(x .?> "NextToken") <*>
(x .?> "Fragments" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListFragments where
instance NFData ListFragments where
instance ToHeaders ListFragments where
toHeaders = const mempty
instance ToJSON ListFragments where
toJSON ListFragments'{..}
= object
(catMaybes
[("FragmentSelector" .=) <$> _lfFragmentSelector,
("NextToken" .=) <$> _lfNextToken,
("MaxResults" .=) <$> _lfMaxResults,
Just ("StreamName" .= _lfStreamName)])
instance ToPath ListFragments where
toPath = const "/listFragments"
instance ToQuery ListFragments where
toQuery = const mempty
data ListFragmentsResponse = ListFragmentsResponse'
{ _lfrsNextToken :: !(Maybe Text)
, _lfrsFragments :: !(Maybe [Fragment])
, _lfrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listFragmentsResponse
:: Int
-> ListFragmentsResponse
listFragmentsResponse pResponseStatus_ =
ListFragmentsResponse'
{ _lfrsNextToken = Nothing
, _lfrsFragments = Nothing
, _lfrsResponseStatus = pResponseStatus_
}
lfrsNextToken :: Lens' ListFragmentsResponse (Maybe Text)
lfrsNextToken = lens _lfrsNextToken (\ s a -> s{_lfrsNextToken = a})
lfrsFragments :: Lens' ListFragmentsResponse [Fragment]
lfrsFragments = lens _lfrsFragments (\ s a -> s{_lfrsFragments = a}) . _Default . _Coerce
lfrsResponseStatus :: Lens' ListFragmentsResponse Int
lfrsResponseStatus = lens _lfrsResponseStatus (\ s a -> s{_lfrsResponseStatus = a})
instance NFData ListFragmentsResponse where