{-# 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.GameLift.CreatePlayerSession
(
createPlayerSession
, CreatePlayerSession
, cPlayerData
, cGameSessionId
, cPlayerId
, createPlayerSessionResponse
, CreatePlayerSessionResponse
, cpsrsPlayerSession
, cpsrsResponseStatus
) where
import Network.AWS.GameLift.Types
import Network.AWS.GameLift.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreatePlayerSession = CreatePlayerSession'
{ _cPlayerData :: !(Maybe Text)
, _cGameSessionId :: !Text
, _cPlayerId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createPlayerSession
:: Text
-> Text
-> CreatePlayerSession
createPlayerSession pGameSessionId_ pPlayerId_ =
CreatePlayerSession'
{ _cPlayerData = Nothing
, _cGameSessionId = pGameSessionId_
, _cPlayerId = pPlayerId_
}
cPlayerData :: Lens' CreatePlayerSession (Maybe Text)
cPlayerData = lens _cPlayerData (\ s a -> s{_cPlayerData = a})
cGameSessionId :: Lens' CreatePlayerSession Text
cGameSessionId = lens _cGameSessionId (\ s a -> s{_cGameSessionId = a})
cPlayerId :: Lens' CreatePlayerSession Text
cPlayerId = lens _cPlayerId (\ s a -> s{_cPlayerId = a})
instance AWSRequest CreatePlayerSession where
type Rs CreatePlayerSession =
CreatePlayerSessionResponse
request = postJSON gameLift
response
= receiveJSON
(\ s h x ->
CreatePlayerSessionResponse' <$>
(x .?> "PlayerSession") <*> (pure (fromEnum s)))
instance Hashable CreatePlayerSession where
instance NFData CreatePlayerSession where
instance ToHeaders CreatePlayerSession where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("GameLift.CreatePlayerSession" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreatePlayerSession where
toJSON CreatePlayerSession'{..}
= object
(catMaybes
[("PlayerData" .=) <$> _cPlayerData,
Just ("GameSessionId" .= _cGameSessionId),
Just ("PlayerId" .= _cPlayerId)])
instance ToPath CreatePlayerSession where
toPath = const "/"
instance ToQuery CreatePlayerSession where
toQuery = const mempty
data CreatePlayerSessionResponse = CreatePlayerSessionResponse'
{ _cpsrsPlayerSession :: !(Maybe PlayerSession)
, _cpsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createPlayerSessionResponse
:: Int
-> CreatePlayerSessionResponse
createPlayerSessionResponse pResponseStatus_ =
CreatePlayerSessionResponse'
{_cpsrsPlayerSession = Nothing, _cpsrsResponseStatus = pResponseStatus_}
cpsrsPlayerSession :: Lens' CreatePlayerSessionResponse (Maybe PlayerSession)
cpsrsPlayerSession = lens _cpsrsPlayerSession (\ s a -> s{_cpsrsPlayerSession = a})
cpsrsResponseStatus :: Lens' CreatePlayerSessionResponse Int
cpsrsResponseStatus = lens _cpsrsResponseStatus (\ s a -> s{_cpsrsResponseStatus = a})
instance NFData CreatePlayerSessionResponse where