module Network.AWS.Pinpoint.CreateSegment
(
createSegment
, CreateSegment
, csApplicationId
, csWriteSegmentRequest
, createSegmentResponse
, CreateSegmentResponse
, csrsResponseStatus
, csrsSegmentResponse
) 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 CreateSegment = CreateSegment'
{ _csApplicationId :: !Text
, _csWriteSegmentRequest :: !WriteSegmentRequest
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createSegment
:: Text
-> WriteSegmentRequest
-> CreateSegment
createSegment pApplicationId_ pWriteSegmentRequest_ =
CreateSegment'
{ _csApplicationId = pApplicationId_
, _csWriteSegmentRequest = pWriteSegmentRequest_
}
csApplicationId :: Lens' CreateSegment Text
csApplicationId = lens _csApplicationId (\ s a -> s{_csApplicationId = a});
csWriteSegmentRequest :: Lens' CreateSegment WriteSegmentRequest
csWriteSegmentRequest = lens _csWriteSegmentRequest (\ s a -> s{_csWriteSegmentRequest = a});
instance AWSRequest CreateSegment where
type Rs CreateSegment = CreateSegmentResponse
request = postJSON pinpoint
response
= receiveJSON
(\ s h x ->
CreateSegmentResponse' <$>
(pure (fromEnum s)) <*> (eitherParseJSON x))
instance Hashable CreateSegment where
instance NFData CreateSegment where
instance ToHeaders CreateSegment where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateSegment where
toJSON CreateSegment'{..}
= object
(catMaybes
[Just
("WriteSegmentRequest" .= _csWriteSegmentRequest)])
instance ToPath CreateSegment where
toPath CreateSegment'{..}
= mconcat
["/v1/apps/", toBS _csApplicationId, "/segments"]
instance ToQuery CreateSegment where
toQuery = const mempty
data CreateSegmentResponse = CreateSegmentResponse'
{ _csrsResponseStatus :: !Int
, _csrsSegmentResponse :: !SegmentResponse
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createSegmentResponse
:: Int
-> SegmentResponse
-> CreateSegmentResponse
createSegmentResponse pResponseStatus_ pSegmentResponse_ =
CreateSegmentResponse'
{ _csrsResponseStatus = pResponseStatus_
, _csrsSegmentResponse = pSegmentResponse_
}
csrsResponseStatus :: Lens' CreateSegmentResponse Int
csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a});
csrsSegmentResponse :: Lens' CreateSegmentResponse SegmentResponse
csrsSegmentResponse = lens _csrsSegmentResponse (\ s a -> s{_csrsSegmentResponse = a});
instance NFData CreateSegmentResponse where