packages feed

stratosphere-0.47.0: library-gen/Stratosphere/ResourceProperties/CodeBuildReportGroupReportExportConfig.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-reportexportconfig.html

module Stratosphere.ResourceProperties.CodeBuildReportGroupReportExportConfig where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.CodeBuildReportGroupS3ReportExportConfig

-- | Full data type definition for CodeBuildReportGroupReportExportConfig. See
-- 'codeBuildReportGroupReportExportConfig' for a more convenient
-- constructor.
data CodeBuildReportGroupReportExportConfig =
  CodeBuildReportGroupReportExportConfig
  { _codeBuildReportGroupReportExportConfigExportConfigType :: Val Text
  , _codeBuildReportGroupReportExportConfigS3Destination :: Maybe CodeBuildReportGroupS3ReportExportConfig
  } deriving (Show, Eq)

instance ToJSON CodeBuildReportGroupReportExportConfig where
  toJSON CodeBuildReportGroupReportExportConfig{..} =
    object $
    catMaybes
    [ (Just . ("ExportConfigType",) . toJSON) _codeBuildReportGroupReportExportConfigExportConfigType
    , fmap (("S3Destination",) . toJSON) _codeBuildReportGroupReportExportConfigS3Destination
    ]

-- | Constructor for 'CodeBuildReportGroupReportExportConfig' containing
-- required fields as arguments.
codeBuildReportGroupReportExportConfig
  :: Val Text -- ^ 'cbrgrecExportConfigType'
  -> CodeBuildReportGroupReportExportConfig
codeBuildReportGroupReportExportConfig exportConfigTypearg =
  CodeBuildReportGroupReportExportConfig
  { _codeBuildReportGroupReportExportConfigExportConfigType = exportConfigTypearg
  , _codeBuildReportGroupReportExportConfigS3Destination = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-reportexportconfig.html#cfn-codebuild-reportgroup-reportexportconfig-exportconfigtype
cbrgrecExportConfigType :: Lens' CodeBuildReportGroupReportExportConfig (Val Text)
cbrgrecExportConfigType = lens _codeBuildReportGroupReportExportConfigExportConfigType (\s a -> s { _codeBuildReportGroupReportExportConfigExportConfigType = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-reportexportconfig.html#cfn-codebuild-reportgroup-reportexportconfig-s3destination
cbrgrecS3Destination :: Lens' CodeBuildReportGroupReportExportConfig (Maybe CodeBuildReportGroupS3ReportExportConfig)
cbrgrecS3Destination = lens _codeBuildReportGroupReportExportConfigS3Destination (\s a -> s { _codeBuildReportGroupReportExportConfigS3Destination = a })