{-# 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.DescribeInstances
(
describeInstances
, DescribeInstances
, diInstanceId
, diNextToken
, diLimit
, diFleetId
, describeInstancesResponse
, DescribeInstancesResponse
, dirsNextToken
, dirsInstances
, dirsResponseStatus
) 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 DescribeInstances = DescribeInstances'
{ _diInstanceId :: !(Maybe Text)
, _diNextToken :: !(Maybe Text)
, _diLimit :: !(Maybe Nat)
, _diFleetId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeInstances
:: Text
-> DescribeInstances
describeInstances pFleetId_ =
DescribeInstances'
{ _diInstanceId = Nothing
, _diNextToken = Nothing
, _diLimit = Nothing
, _diFleetId = pFleetId_
}
diInstanceId :: Lens' DescribeInstances (Maybe Text)
diInstanceId = lens _diInstanceId (\ s a -> s{_diInstanceId = a})
diNextToken :: Lens' DescribeInstances (Maybe Text)
diNextToken = lens _diNextToken (\ s a -> s{_diNextToken = a})
diLimit :: Lens' DescribeInstances (Maybe Natural)
diLimit = lens _diLimit (\ s a -> s{_diLimit = a}) . mapping _Nat
diFleetId :: Lens' DescribeInstances Text
diFleetId = lens _diFleetId (\ s a -> s{_diFleetId = a})
instance AWSRequest DescribeInstances where
type Rs DescribeInstances = DescribeInstancesResponse
request = postJSON gameLift
response
= receiveJSON
(\ s h x ->
DescribeInstancesResponse' <$>
(x .?> "NextToken") <*>
(x .?> "Instances" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable DescribeInstances where
instance NFData DescribeInstances where
instance ToHeaders DescribeInstances where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("GameLift.DescribeInstances" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeInstances where
toJSON DescribeInstances'{..}
= object
(catMaybes
[("InstanceId" .=) <$> _diInstanceId,
("NextToken" .=) <$> _diNextToken,
("Limit" .=) <$> _diLimit,
Just ("FleetId" .= _diFleetId)])
instance ToPath DescribeInstances where
toPath = const "/"
instance ToQuery DescribeInstances where
toQuery = const mempty
data DescribeInstancesResponse = DescribeInstancesResponse'
{ _dirsNextToken :: !(Maybe Text)
, _dirsInstances :: !(Maybe [Instance])
, _dirsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeInstancesResponse
:: Int
-> DescribeInstancesResponse
describeInstancesResponse pResponseStatus_ =
DescribeInstancesResponse'
{ _dirsNextToken = Nothing
, _dirsInstances = Nothing
, _dirsResponseStatus = pResponseStatus_
}
dirsNextToken :: Lens' DescribeInstancesResponse (Maybe Text)
dirsNextToken = lens _dirsNextToken (\ s a -> s{_dirsNextToken = a})
dirsInstances :: Lens' DescribeInstancesResponse [Instance]
dirsInstances = lens _dirsInstances (\ s a -> s{_dirsInstances = a}) . _Default . _Coerce
dirsResponseStatus :: Lens' DescribeInstancesResponse Int
dirsResponseStatus = lens _dirsResponseStatus (\ s a -> s{_dirsResponseStatus = a})
instance NFData DescribeInstancesResponse where