stratosphere-0.3.0: library-gen/Stratosphere/Resources/CodeBuildProject.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html
module Stratosphere.Resources.CodeBuildProject where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.CodeBuildProjectArtifacts
import Stratosphere.ResourceProperties.CodeBuildProjectEnvironment
import Stratosphere.ResourceProperties.CodeBuildProjectSource
import Stratosphere.ResourceProperties.Tag
-- | Full data type definition for CodeBuildProject. See 'codeBuildProject'
-- | for a more convenient constructor.
data CodeBuildProject =
CodeBuildProject
{ _codeBuildProjectArtifacts :: Maybe CodeBuildProjectArtifacts
, _codeBuildProjectDescription :: Maybe (Val Text)
, _codeBuildProjectEncryptionKey :: Maybe (Val Text)
, _codeBuildProjectEnvironment :: Maybe CodeBuildProjectEnvironment
, _codeBuildProjectName :: Maybe (Val Text)
, _codeBuildProjectServiceRole :: Maybe (Val Text)
, _codeBuildProjectSource :: Maybe CodeBuildProjectSource
, _codeBuildProjectTags :: Maybe [Tag]
, _codeBuildProjectTimeoutInMinutes :: Maybe (Val Integer')
} deriving (Show, Generic)
instance ToJSON CodeBuildProject where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }
instance FromJSON CodeBuildProject where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }
-- | Constructor for 'CodeBuildProject' containing required fields as
-- | arguments.
codeBuildProject
:: CodeBuildProject
codeBuildProject =
CodeBuildProject
{ _codeBuildProjectArtifacts = Nothing
, _codeBuildProjectDescription = Nothing
, _codeBuildProjectEncryptionKey = Nothing
, _codeBuildProjectEnvironment = Nothing
, _codeBuildProjectName = Nothing
, _codeBuildProjectServiceRole = Nothing
, _codeBuildProjectSource = Nothing
, _codeBuildProjectTags = Nothing
, _codeBuildProjectTimeoutInMinutes = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-artifacts
cbpArtifacts :: Lens' CodeBuildProject (Maybe CodeBuildProjectArtifacts)
cbpArtifacts = lens _codeBuildProjectArtifacts (\s a -> s { _codeBuildProjectArtifacts = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-description
cbpDescription :: Lens' CodeBuildProject (Maybe (Val Text))
cbpDescription = lens _codeBuildProjectDescription (\s a -> s { _codeBuildProjectDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-encryptionkey
cbpEncryptionKey :: Lens' CodeBuildProject (Maybe (Val Text))
cbpEncryptionKey = lens _codeBuildProjectEncryptionKey (\s a -> s { _codeBuildProjectEncryptionKey = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-environment
cbpEnvironment :: Lens' CodeBuildProject (Maybe CodeBuildProjectEnvironment)
cbpEnvironment = lens _codeBuildProjectEnvironment (\s a -> s { _codeBuildProjectEnvironment = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-name
cbpName :: Lens' CodeBuildProject (Maybe (Val Text))
cbpName = lens _codeBuildProjectName (\s a -> s { _codeBuildProjectName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-servicerole
cbpServiceRole :: Lens' CodeBuildProject (Maybe (Val Text))
cbpServiceRole = lens _codeBuildProjectServiceRole (\s a -> s { _codeBuildProjectServiceRole = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-source
cbpSource :: Lens' CodeBuildProject (Maybe CodeBuildProjectSource)
cbpSource = lens _codeBuildProjectSource (\s a -> s { _codeBuildProjectSource = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-tags
cbpTags :: Lens' CodeBuildProject (Maybe [Tag])
cbpTags = lens _codeBuildProjectTags (\s a -> s { _codeBuildProjectTags = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-timeoutinminutes
cbpTimeoutInMinutes :: Lens' CodeBuildProject (Maybe (Val Integer'))
cbpTimeoutInMinutes = lens _codeBuildProjectTimeoutInMinutes (\s a -> s { _codeBuildProjectTimeoutInMinutes = a })