{-# 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 })