{-# 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 -- 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