amazonka-gamelift-1.4.4: gen/Network/AWS/GameLift/UpdateRuntimeConfiguration.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.UpdateRuntimeConfiguration
-- 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 the current runtime configuration for the specified fleet, which tells GameLift how to launch server processes on instances in the fleet. You can update a fleet\'s runtime configuration at any time after the fleet is created; it does not need to be in an 'ACTIVE' status.
--
-- To update runtime configuration, specify the fleet ID and provide a 'RuntimeConfiguration' object with the updated collection of server process configurations.
--
-- Each instance in a GameLift fleet checks regularly for an updated runtime configuration and changes how it launches server processes to comply with the latest version. Existing server processes are not affected by the update; they continue to run until they end, while GameLift simply adds new server processes to fit the current runtime configuration. As a result, the runtime configuration changes are applied gradually as existing processes shut down and new processes are launched in GameLift\'s normal process recycling activity.
module Network.AWS.GameLift.UpdateRuntimeConfiguration
(
-- * Creating a Request
updateRuntimeConfiguration
, UpdateRuntimeConfiguration
-- * Request Lenses
, urcFleetId
, urcRuntimeConfiguration
-- * Destructuring the Response
, updateRuntimeConfigurationResponse
, UpdateRuntimeConfigurationResponse
-- * Response Lenses
, urcrsRuntimeConfiguration
, urcrsResponseStatus
) 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:/ 'updateRuntimeConfiguration' smart constructor.
data UpdateRuntimeConfiguration = UpdateRuntimeConfiguration'
{ _urcFleetId :: !Text
, _urcRuntimeConfiguration :: !RuntimeConfiguration
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'UpdateRuntimeConfiguration' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'urcFleetId'
--
-- * 'urcRuntimeConfiguration'
updateRuntimeConfiguration
:: Text -- ^ 'urcFleetId'
-> RuntimeConfiguration -- ^ 'urcRuntimeConfiguration'
-> UpdateRuntimeConfiguration
updateRuntimeConfiguration pFleetId_ pRuntimeConfiguration_ =
UpdateRuntimeConfiguration'
{ _urcFleetId = pFleetId_
, _urcRuntimeConfiguration = pRuntimeConfiguration_
}
-- | Unique identifier of the fleet to update runtime configuration for.
urcFleetId :: Lens' UpdateRuntimeConfiguration Text
urcFleetId = lens _urcFleetId (\ s a -> s{_urcFleetId = a});
-- | Instructions for launching server processes on each instance in the fleet. The runtime configuration for a fleet has a collection of server process configurations, one for each type of server process to run on an instance. A server process configuration specifies the location of the server executable, launch parameters, and the number of concurrent processes with that configuration to maintain on each instance.
urcRuntimeConfiguration :: Lens' UpdateRuntimeConfiguration RuntimeConfiguration
urcRuntimeConfiguration = lens _urcRuntimeConfiguration (\ s a -> s{_urcRuntimeConfiguration = a});
instance AWSRequest UpdateRuntimeConfiguration where
type Rs UpdateRuntimeConfiguration =
UpdateRuntimeConfigurationResponse
request = postJSON gameLift
response
= receiveJSON
(\ s h x ->
UpdateRuntimeConfigurationResponse' <$>
(x .?> "RuntimeConfiguration") <*>
(pure (fromEnum s)))
instance Hashable UpdateRuntimeConfiguration
instance NFData UpdateRuntimeConfiguration
instance ToHeaders UpdateRuntimeConfiguration where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("GameLift.UpdateRuntimeConfiguration" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateRuntimeConfiguration where
toJSON UpdateRuntimeConfiguration'{..}
= object
(catMaybes
[Just ("FleetId" .= _urcFleetId),
Just
("RuntimeConfiguration" .=
_urcRuntimeConfiguration)])
instance ToPath UpdateRuntimeConfiguration where
toPath = const "/"
instance ToQuery UpdateRuntimeConfiguration where
toQuery = const mempty
-- | Represents the returned data in response to a request action.
--
-- /See:/ 'updateRuntimeConfigurationResponse' smart constructor.
data UpdateRuntimeConfigurationResponse = UpdateRuntimeConfigurationResponse'
{ _urcrsRuntimeConfiguration :: !(Maybe RuntimeConfiguration)
, _urcrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'UpdateRuntimeConfigurationResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'urcrsRuntimeConfiguration'
--
-- * 'urcrsResponseStatus'
updateRuntimeConfigurationResponse
:: Int -- ^ 'urcrsResponseStatus'
-> UpdateRuntimeConfigurationResponse
updateRuntimeConfigurationResponse pResponseStatus_ =
UpdateRuntimeConfigurationResponse'
{ _urcrsRuntimeConfiguration = Nothing
, _urcrsResponseStatus = pResponseStatus_
}
-- | The runtime configuration currently in force. If the update was successful, this object matches the one in the request.
urcrsRuntimeConfiguration :: Lens' UpdateRuntimeConfigurationResponse (Maybe RuntimeConfiguration)
urcrsRuntimeConfiguration = lens _urcrsRuntimeConfiguration (\ s a -> s{_urcrsRuntimeConfiguration = a});
-- | The response status code.
urcrsResponseStatus :: Lens' UpdateRuntimeConfigurationResponse Int
urcrsResponseStatus = lens _urcrsResponseStatus (\ s a -> s{_urcrsResponseStatus = a});
instance NFData UpdateRuntimeConfigurationResponse