amazonka-gamelift-1.4.4: gen/Network/AWS/GameLift/UpdateFleetPortSettings.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.GameLift.UpdateFleetPortSettings
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates port settings for a fleet. To update settings, specify the fleet ID to be updated and list the permissions you want to update. List the permissions you want to add in 'InboundPermissionAuthorizations', and permissions you want to remove in 'InboundPermissionRevocations'. Permissions to be removed must match existing fleet permissions. If successful, the fleet ID for the updated fleet is returned.
module Network.AWS.GameLift.UpdateFleetPortSettings
(
-- * Creating a Request
updateFleetPortSettings
, UpdateFleetPortSettings
-- * Request Lenses
, ufpsInboundPermissionRevocations
, ufpsInboundPermissionAuthorizations
, ufpsFleetId
-- * Destructuring the Response
, updateFleetPortSettingsResponse
, UpdateFleetPortSettingsResponse
-- * Response Lenses
, ufpsrsFleetId
, ufpsrsResponseStatus
) 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
-- | Represents the input for a request action.
--
-- /See:/ 'updateFleetPortSettings' smart constructor.
data UpdateFleetPortSettings = UpdateFleetPortSettings'
{ _ufpsInboundPermissionRevocations :: !(Maybe [IPPermission])
, _ufpsInboundPermissionAuthorizations :: !(Maybe [IPPermission])
, _ufpsFleetId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'UpdateFleetPortSettings' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ufpsInboundPermissionRevocations'
--
-- * 'ufpsInboundPermissionAuthorizations'
--
-- * 'ufpsFleetId'
updateFleetPortSettings
:: Text -- ^ 'ufpsFleetId'
-> UpdateFleetPortSettings
updateFleetPortSettings pFleetId_ =
UpdateFleetPortSettings'
{ _ufpsInboundPermissionRevocations = Nothing
, _ufpsInboundPermissionAuthorizations = Nothing
, _ufpsFleetId = pFleetId_
}
-- | Collection of port settings to be removed from the fleet record.
ufpsInboundPermissionRevocations :: Lens' UpdateFleetPortSettings [IPPermission]
ufpsInboundPermissionRevocations = lens _ufpsInboundPermissionRevocations (\ s a -> s{_ufpsInboundPermissionRevocations = a}) . _Default . _Coerce;
-- | Collection of port settings to be added to the fleet record.
ufpsInboundPermissionAuthorizations :: Lens' UpdateFleetPortSettings [IPPermission]
ufpsInboundPermissionAuthorizations = lens _ufpsInboundPermissionAuthorizations (\ s a -> s{_ufpsInboundPermissionAuthorizations = a}) . _Default . _Coerce;
-- | Unique identifier for the fleet you want to update port settings for.
ufpsFleetId :: Lens' UpdateFleetPortSettings Text
ufpsFleetId = lens _ufpsFleetId (\ s a -> s{_ufpsFleetId = a});
instance AWSRequest UpdateFleetPortSettings where
type Rs UpdateFleetPortSettings =
UpdateFleetPortSettingsResponse
request = postJSON gameLift
response
= receiveJSON
(\ s h x ->
UpdateFleetPortSettingsResponse' <$>
(x .?> "FleetId") <*> (pure (fromEnum s)))
instance Hashable UpdateFleetPortSettings
instance NFData UpdateFleetPortSettings
instance ToHeaders UpdateFleetPortSettings where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("GameLift.UpdateFleetPortSettings" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateFleetPortSettings where
toJSON UpdateFleetPortSettings'{..}
= object
(catMaybes
[("InboundPermissionRevocations" .=) <$>
_ufpsInboundPermissionRevocations,
("InboundPermissionAuthorizations" .=) <$>
_ufpsInboundPermissionAuthorizations,
Just ("FleetId" .= _ufpsFleetId)])
instance ToPath UpdateFleetPortSettings where
toPath = const "/"
instance ToQuery UpdateFleetPortSettings where
toQuery = const mempty
-- | Represents the returned data in response to a request action.
--
-- /See:/ 'updateFleetPortSettingsResponse' smart constructor.
data UpdateFleetPortSettingsResponse = UpdateFleetPortSettingsResponse'
{ _ufpsrsFleetId :: !(Maybe Text)
, _ufpsrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'UpdateFleetPortSettingsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ufpsrsFleetId'
--
-- * 'ufpsrsResponseStatus'
updateFleetPortSettingsResponse
:: Int -- ^ 'ufpsrsResponseStatus'
-> UpdateFleetPortSettingsResponse
updateFleetPortSettingsResponse pResponseStatus_ =
UpdateFleetPortSettingsResponse'
{ _ufpsrsFleetId = Nothing
, _ufpsrsResponseStatus = pResponseStatus_
}
-- | Unique identifier for the updated fleet.
ufpsrsFleetId :: Lens' UpdateFleetPortSettingsResponse (Maybe Text)
ufpsrsFleetId = lens _ufpsrsFleetId (\ s a -> s{_ufpsrsFleetId = a});
-- | The response status code.
ufpsrsResponseStatus :: Lens' UpdateFleetPortSettingsResponse Int
ufpsrsResponseStatus = lens _ufpsrsResponseStatus (\ s a -> s{_ufpsrsResponseStatus = a});
instance NFData UpdateFleetPortSettingsResponse