stratosphere-0.15.2: library-gen/Stratosphere/ResourceProperties/CodeBuildProjectVpcConfig.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html
module Stratosphere.ResourceProperties.CodeBuildProjectVpcConfig where
import Stratosphere.ResourceImports
-- | Full data type definition for CodeBuildProjectVpcConfig. See
-- 'codeBuildProjectVpcConfig' for a more convenient constructor.
data CodeBuildProjectVpcConfig =
CodeBuildProjectVpcConfig
{ _codeBuildProjectVpcConfigSecurityGroupIds :: ValList Text
, _codeBuildProjectVpcConfigSubnets :: ValList Text
, _codeBuildProjectVpcConfigVpcId :: Val Text
} deriving (Show, Eq)
instance ToJSON CodeBuildProjectVpcConfig where
toJSON CodeBuildProjectVpcConfig{..} =
object $
catMaybes
[ (Just . ("SecurityGroupIds",) . toJSON) _codeBuildProjectVpcConfigSecurityGroupIds
, (Just . ("Subnets",) . toJSON) _codeBuildProjectVpcConfigSubnets
, (Just . ("VpcId",) . toJSON) _codeBuildProjectVpcConfigVpcId
]
instance FromJSON CodeBuildProjectVpcConfig where
parseJSON (Object obj) =
CodeBuildProjectVpcConfig <$>
(obj .: "SecurityGroupIds") <*>
(obj .: "Subnets") <*>
(obj .: "VpcId")
parseJSON _ = mempty
-- | Constructor for 'CodeBuildProjectVpcConfig' containing required fields as
-- arguments.
codeBuildProjectVpcConfig
:: ValList Text -- ^ 'cbpvcSecurityGroupIds'
-> ValList Text -- ^ 'cbpvcSubnets'
-> Val Text -- ^ 'cbpvcVpcId'
-> CodeBuildProjectVpcConfig
codeBuildProjectVpcConfig securityGroupIdsarg subnetsarg vpcIdarg =
CodeBuildProjectVpcConfig
{ _codeBuildProjectVpcConfigSecurityGroupIds = securityGroupIdsarg
, _codeBuildProjectVpcConfigSubnets = subnetsarg
, _codeBuildProjectVpcConfigVpcId = vpcIdarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-securitygroupids
cbpvcSecurityGroupIds :: Lens' CodeBuildProjectVpcConfig (ValList Text)
cbpvcSecurityGroupIds = lens _codeBuildProjectVpcConfigSecurityGroupIds (\s a -> s { _codeBuildProjectVpcConfigSecurityGroupIds = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-subnets
cbpvcSubnets :: Lens' CodeBuildProjectVpcConfig (ValList Text)
cbpvcSubnets = lens _codeBuildProjectVpcConfigSubnets (\s a -> s { _codeBuildProjectVpcConfigSubnets = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-vpcid
cbpvcVpcId :: Lens' CodeBuildProjectVpcConfig (Val Text)
cbpvcVpcId = lens _codeBuildProjectVpcConfigVpcId (\s a -> s { _codeBuildProjectVpcConfigVpcId = a })