stratosphere-0.33.0: library-gen/Stratosphere/Resources/AppStreamImageBuilder.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html
module Stratosphere.Resources.AppStreamImageBuilder where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppStreamImageBuilderDomainJoinInfo
import Stratosphere.ResourceProperties.AppStreamImageBuilderVpcConfig
-- | Full data type definition for AppStreamImageBuilder. See
-- 'appStreamImageBuilder' for a more convenient constructor.
data AppStreamImageBuilder =
AppStreamImageBuilder
{ _appStreamImageBuilderAppstreamAgentVersion :: Maybe (Val Text)
, _appStreamImageBuilderDescription :: Maybe (Val Text)
, _appStreamImageBuilderDisplayName :: Maybe (Val Text)
, _appStreamImageBuilderDomainJoinInfo :: Maybe AppStreamImageBuilderDomainJoinInfo
, _appStreamImageBuilderEnableDefaultInternetAccess :: Maybe (Val Bool)
, _appStreamImageBuilderImageArn :: Maybe (Val Text)
, _appStreamImageBuilderImageName :: Maybe (Val Text)
, _appStreamImageBuilderInstanceType :: Val Text
, _appStreamImageBuilderName :: Maybe (Val Text)
, _appStreamImageBuilderVpcConfig :: Maybe AppStreamImageBuilderVpcConfig
} deriving (Show, Eq)
instance ToResourceProperties AppStreamImageBuilder where
toResourceProperties AppStreamImageBuilder{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::AppStream::ImageBuilder"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ fmap (("AppstreamAgentVersion",) . toJSON) _appStreamImageBuilderAppstreamAgentVersion
, fmap (("Description",) . toJSON) _appStreamImageBuilderDescription
, fmap (("DisplayName",) . toJSON) _appStreamImageBuilderDisplayName
, fmap (("DomainJoinInfo",) . toJSON) _appStreamImageBuilderDomainJoinInfo
, fmap (("EnableDefaultInternetAccess",) . toJSON . fmap Bool') _appStreamImageBuilderEnableDefaultInternetAccess
, fmap (("ImageArn",) . toJSON) _appStreamImageBuilderImageArn
, fmap (("ImageName",) . toJSON) _appStreamImageBuilderImageName
, (Just . ("InstanceType",) . toJSON) _appStreamImageBuilderInstanceType
, fmap (("Name",) . toJSON) _appStreamImageBuilderName
, fmap (("VpcConfig",) . toJSON) _appStreamImageBuilderVpcConfig
]
}
-- | Constructor for 'AppStreamImageBuilder' containing required fields as
-- arguments.
appStreamImageBuilder
:: Val Text -- ^ 'asibInstanceType'
-> AppStreamImageBuilder
appStreamImageBuilder instanceTypearg =
AppStreamImageBuilder
{ _appStreamImageBuilderAppstreamAgentVersion = Nothing
, _appStreamImageBuilderDescription = Nothing
, _appStreamImageBuilderDisplayName = Nothing
, _appStreamImageBuilderDomainJoinInfo = Nothing
, _appStreamImageBuilderEnableDefaultInternetAccess = Nothing
, _appStreamImageBuilderImageArn = Nothing
, _appStreamImageBuilderImageName = Nothing
, _appStreamImageBuilderInstanceType = instanceTypearg
, _appStreamImageBuilderName = Nothing
, _appStreamImageBuilderVpcConfig = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-appstreamagentversion
asibAppstreamAgentVersion :: Lens' AppStreamImageBuilder (Maybe (Val Text))
asibAppstreamAgentVersion = lens _appStreamImageBuilderAppstreamAgentVersion (\s a -> s { _appStreamImageBuilderAppstreamAgentVersion = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-description
asibDescription :: Lens' AppStreamImageBuilder (Maybe (Val Text))
asibDescription = lens _appStreamImageBuilderDescription (\s a -> s { _appStreamImageBuilderDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-displayname
asibDisplayName :: Lens' AppStreamImageBuilder (Maybe (Val Text))
asibDisplayName = lens _appStreamImageBuilderDisplayName (\s a -> s { _appStreamImageBuilderDisplayName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-domainjoininfo
asibDomainJoinInfo :: Lens' AppStreamImageBuilder (Maybe AppStreamImageBuilderDomainJoinInfo)
asibDomainJoinInfo = lens _appStreamImageBuilderDomainJoinInfo (\s a -> s { _appStreamImageBuilderDomainJoinInfo = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-enabledefaultinternetaccess
asibEnableDefaultInternetAccess :: Lens' AppStreamImageBuilder (Maybe (Val Bool))
asibEnableDefaultInternetAccess = lens _appStreamImageBuilderEnableDefaultInternetAccess (\s a -> s { _appStreamImageBuilderEnableDefaultInternetAccess = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-imagearn
asibImageArn :: Lens' AppStreamImageBuilder (Maybe (Val Text))
asibImageArn = lens _appStreamImageBuilderImageArn (\s a -> s { _appStreamImageBuilderImageArn = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-imagename
asibImageName :: Lens' AppStreamImageBuilder (Maybe (Val Text))
asibImageName = lens _appStreamImageBuilderImageName (\s a -> s { _appStreamImageBuilderImageName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-instancetype
asibInstanceType :: Lens' AppStreamImageBuilder (Val Text)
asibInstanceType = lens _appStreamImageBuilderInstanceType (\s a -> s { _appStreamImageBuilderInstanceType = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-name
asibName :: Lens' AppStreamImageBuilder (Maybe (Val Text))
asibName = lens _appStreamImageBuilderName (\s a -> s { _appStreamImageBuilderName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-vpcconfig
asibVpcConfig :: Lens' AppStreamImageBuilder (Maybe AppStreamImageBuilderVpcConfig)
asibVpcConfig = lens _appStreamImageBuilderVpcConfig (\s a -> s { _appStreamImageBuilderVpcConfig = a })