packages feed

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

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

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

module Stratosphere.ResourceProperties.GameLiftGameServerGroupLaunchTemplate where

import Stratosphere.ResourceImports


-- | Full data type definition for GameLiftGameServerGroupLaunchTemplate. See
-- 'gameLiftGameServerGroupLaunchTemplate' for a more convenient
-- constructor.
data GameLiftGameServerGroupLaunchTemplate =
  GameLiftGameServerGroupLaunchTemplate
  { _gameLiftGameServerGroupLaunchTemplateLaunchTemplateId :: Maybe (Val Text)
  , _gameLiftGameServerGroupLaunchTemplateLaunchTemplateName :: Maybe (Val Text)
  , _gameLiftGameServerGroupLaunchTemplateVersion :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON GameLiftGameServerGroupLaunchTemplate where
  toJSON GameLiftGameServerGroupLaunchTemplate{..} =
    object $
    catMaybes
    [ fmap (("LaunchTemplateId",) . toJSON) _gameLiftGameServerGroupLaunchTemplateLaunchTemplateId
    , fmap (("LaunchTemplateName",) . toJSON) _gameLiftGameServerGroupLaunchTemplateLaunchTemplateName
    , fmap (("Version",) . toJSON) _gameLiftGameServerGroupLaunchTemplateVersion
    ]

-- | Constructor for 'GameLiftGameServerGroupLaunchTemplate' containing
-- required fields as arguments.
gameLiftGameServerGroupLaunchTemplate
  :: GameLiftGameServerGroupLaunchTemplate
gameLiftGameServerGroupLaunchTemplate  =
  GameLiftGameServerGroupLaunchTemplate
  { _gameLiftGameServerGroupLaunchTemplateLaunchTemplateId = Nothing
  , _gameLiftGameServerGroupLaunchTemplateLaunchTemplateName = Nothing
  , _gameLiftGameServerGroupLaunchTemplateVersion = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html#cfn-gamelift-gameservergroup-launchtemplate-launchtemplateid
glgsgltLaunchTemplateId :: Lens' GameLiftGameServerGroupLaunchTemplate (Maybe (Val Text))
glgsgltLaunchTemplateId = lens _gameLiftGameServerGroupLaunchTemplateLaunchTemplateId (\s a -> s { _gameLiftGameServerGroupLaunchTemplateLaunchTemplateId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html#cfn-gamelift-gameservergroup-launchtemplate-launchtemplatename
glgsgltLaunchTemplateName :: Lens' GameLiftGameServerGroupLaunchTemplate (Maybe (Val Text))
glgsgltLaunchTemplateName = lens _gameLiftGameServerGroupLaunchTemplateLaunchTemplateName (\s a -> s { _gameLiftGameServerGroupLaunchTemplateLaunchTemplateName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html#cfn-gamelift-gameservergroup-launchtemplate-version
glgsgltVersion :: Lens' GameLiftGameServerGroupLaunchTemplate (Maybe (Val Text))
glgsgltVersion = lens _gameLiftGameServerGroupLaunchTemplateVersion (\s a -> s { _gameLiftGameServerGroupLaunchTemplateVersion = a })