packages feed

stratosphere-0.59.0: library-gen/Stratosphere/ResourceProperties/GameLiftGameServerGroupTargetTrackingConfiguration.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-targettrackingconfiguration.html

module Stratosphere.ResourceProperties.GameLiftGameServerGroupTargetTrackingConfiguration where

import Stratosphere.ResourceImports


-- | Full data type definition for
-- GameLiftGameServerGroupTargetTrackingConfiguration. See
-- 'gameLiftGameServerGroupTargetTrackingConfiguration' for a more
-- convenient constructor.
data GameLiftGameServerGroupTargetTrackingConfiguration =
  GameLiftGameServerGroupTargetTrackingConfiguration
  { _gameLiftGameServerGroupTargetTrackingConfigurationTargetValue :: Val Double
  } deriving (Show, Eq)

instance ToJSON GameLiftGameServerGroupTargetTrackingConfiguration where
  toJSON GameLiftGameServerGroupTargetTrackingConfiguration{..} =
    object $
    catMaybes
    [ (Just . ("TargetValue",) . toJSON) _gameLiftGameServerGroupTargetTrackingConfigurationTargetValue
    ]

-- | Constructor for 'GameLiftGameServerGroupTargetTrackingConfiguration'
-- containing required fields as arguments.
gameLiftGameServerGroupTargetTrackingConfiguration
  :: Val Double -- ^ 'glgsgttcTargetValue'
  -> GameLiftGameServerGroupTargetTrackingConfiguration
gameLiftGameServerGroupTargetTrackingConfiguration targetValuearg =
  GameLiftGameServerGroupTargetTrackingConfiguration
  { _gameLiftGameServerGroupTargetTrackingConfigurationTargetValue = targetValuearg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-targettrackingconfiguration.html#cfn-gamelift-gameservergroup-targettrackingconfiguration-targetvalue
glgsgttcTargetValue :: Lens' GameLiftGameServerGroupTargetTrackingConfiguration (Val Double)
glgsgttcTargetValue = lens _gameLiftGameServerGroupTargetTrackingConfigurationTargetValue (\s a -> s { _gameLiftGameServerGroupTargetTrackingConfigurationTargetValue = a })