{-# 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.Pinpoint.GetSegmentVersions
(
getSegmentVersions
, GetSegmentVersions
, gsvToken
, gsvPageSize
, gsvSegmentId
, gsvApplicationId
, getSegmentVersionsResponse
, GetSegmentVersionsResponse
, grsResponseStatus
, grsSegmentsResponse
) where
import Network.AWS.Lens
import Network.AWS.Pinpoint.Types
import Network.AWS.Pinpoint.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data GetSegmentVersions = GetSegmentVersions'
{ _gsvToken :: !(Maybe Text)
, _gsvPageSize :: !(Maybe Text)
, _gsvSegmentId :: !Text
, _gsvApplicationId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getSegmentVersions
:: Text
-> Text
-> GetSegmentVersions
getSegmentVersions pSegmentId_ pApplicationId_ =
GetSegmentVersions'
{ _gsvToken = Nothing
, _gsvPageSize = Nothing
, _gsvSegmentId = pSegmentId_
, _gsvApplicationId = pApplicationId_
}
gsvToken :: Lens' GetSegmentVersions (Maybe Text)
gsvToken = lens _gsvToken (\ s a -> s{_gsvToken = a})
gsvPageSize :: Lens' GetSegmentVersions (Maybe Text)
gsvPageSize = lens _gsvPageSize (\ s a -> s{_gsvPageSize = a})
gsvSegmentId :: Lens' GetSegmentVersions Text
gsvSegmentId = lens _gsvSegmentId (\ s a -> s{_gsvSegmentId = a})
gsvApplicationId :: Lens' GetSegmentVersions Text
gsvApplicationId = lens _gsvApplicationId (\ s a -> s{_gsvApplicationId = a})
instance AWSRequest GetSegmentVersions where
type Rs GetSegmentVersions =
GetSegmentVersionsResponse
request = get pinpoint
response
= receiveJSON
(\ s h x ->
GetSegmentVersionsResponse' <$>
(pure (fromEnum s)) <*> (eitherParseJSON x))
instance Hashable GetSegmentVersions where
instance NFData GetSegmentVersions where
instance ToHeaders GetSegmentVersions where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToPath GetSegmentVersions where
toPath GetSegmentVersions'{..}
= mconcat
["/v1/apps/", toBS _gsvApplicationId, "/segments/",
toBS _gsvSegmentId, "/versions"]
instance ToQuery GetSegmentVersions where
toQuery GetSegmentVersions'{..}
= mconcat
["token" =: _gsvToken, "page-size" =: _gsvPageSize]
data GetSegmentVersionsResponse = GetSegmentVersionsResponse'
{ _grsResponseStatus :: !Int
, _grsSegmentsResponse :: !SegmentsResponse
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getSegmentVersionsResponse
:: Int
-> SegmentsResponse
-> GetSegmentVersionsResponse
getSegmentVersionsResponse pResponseStatus_ pSegmentsResponse_ =
GetSegmentVersionsResponse'
{ _grsResponseStatus = pResponseStatus_
, _grsSegmentsResponse = pSegmentsResponse_
}
grsResponseStatus :: Lens' GetSegmentVersionsResponse Int
grsResponseStatus = lens _grsResponseStatus (\ s a -> s{_grsResponseStatus = a})
grsSegmentsResponse :: Lens' GetSegmentVersionsResponse SegmentsResponse
grsSegmentsResponse = lens _grsSegmentsResponse (\ s a -> s{_grsSegmentsResponse = a})
instance NFData GetSegmentVersionsResponse where