packages feed

stratosphere-0.50.0: library-gen/Stratosphere/ResourceProperties/EC2LaunchTemplateMetadataOptions.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html

module Stratosphere.ResourceProperties.EC2LaunchTemplateMetadataOptions where

import Stratosphere.ResourceImports


-- | Full data type definition for EC2LaunchTemplateMetadataOptions. See
-- 'ec2LaunchTemplateMetadataOptions' for a more convenient constructor.
data EC2LaunchTemplateMetadataOptions =
  EC2LaunchTemplateMetadataOptions
  { _eC2LaunchTemplateMetadataOptionsHttpEndpoint :: Maybe (Val Text)
  , _eC2LaunchTemplateMetadataOptionsHttpPutResponseHopLimit :: Maybe (Val Integer)
  , _eC2LaunchTemplateMetadataOptionsHttpTokens :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON EC2LaunchTemplateMetadataOptions where
  toJSON EC2LaunchTemplateMetadataOptions{..} =
    object $
    catMaybes
    [ fmap (("HttpEndpoint",) . toJSON) _eC2LaunchTemplateMetadataOptionsHttpEndpoint
    , fmap (("HttpPutResponseHopLimit",) . toJSON) _eC2LaunchTemplateMetadataOptionsHttpPutResponseHopLimit
    , fmap (("HttpTokens",) . toJSON) _eC2LaunchTemplateMetadataOptionsHttpTokens
    ]

-- | Constructor for 'EC2LaunchTemplateMetadataOptions' containing required
-- fields as arguments.
ec2LaunchTemplateMetadataOptions
  :: EC2LaunchTemplateMetadataOptions
ec2LaunchTemplateMetadataOptions  =
  EC2LaunchTemplateMetadataOptions
  { _eC2LaunchTemplateMetadataOptionsHttpEndpoint = Nothing
  , _eC2LaunchTemplateMetadataOptionsHttpPutResponseHopLimit = Nothing
  , _eC2LaunchTemplateMetadataOptionsHttpTokens = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpendpoint
ecltmoHttpEndpoint :: Lens' EC2LaunchTemplateMetadataOptions (Maybe (Val Text))
ecltmoHttpEndpoint = lens _eC2LaunchTemplateMetadataOptionsHttpEndpoint (\s a -> s { _eC2LaunchTemplateMetadataOptionsHttpEndpoint = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpputresponsehoplimit
ecltmoHttpPutResponseHopLimit :: Lens' EC2LaunchTemplateMetadataOptions (Maybe (Val Integer))
ecltmoHttpPutResponseHopLimit = lens _eC2LaunchTemplateMetadataOptionsHttpPutResponseHopLimit (\s a -> s { _eC2LaunchTemplateMetadataOptionsHttpPutResponseHopLimit = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httptokens
ecltmoHttpTokens :: Lens' EC2LaunchTemplateMetadataOptions (Maybe (Val Text))
ecltmoHttpTokens = lens _eC2LaunchTemplateMetadataOptionsHttpTokens (\s a -> s { _eC2LaunchTemplateMetadataOptionsHttpTokens = a })