packages feed

stratosphere-0.50.0: library-gen/Stratosphere/ResourceProperties/AthenaWorkGroupWorkGroupConfigurationUpdates.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html

module Stratosphere.ResourceProperties.AthenaWorkGroupWorkGroupConfigurationUpdates where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AthenaWorkGroupResultConfigurationUpdates

-- | Full data type definition for
-- AthenaWorkGroupWorkGroupConfigurationUpdates. See
-- 'athenaWorkGroupWorkGroupConfigurationUpdates' for a more convenient
-- constructor.
data AthenaWorkGroupWorkGroupConfigurationUpdates =
  AthenaWorkGroupWorkGroupConfigurationUpdates
  { _athenaWorkGroupWorkGroupConfigurationUpdatesBytesScannedCutoffPerQuery :: Maybe (Val Integer)
  , _athenaWorkGroupWorkGroupConfigurationUpdatesEnforceWorkGroupConfiguration :: Maybe (Val Bool)
  , _athenaWorkGroupWorkGroupConfigurationUpdatesPublishCloudWatchMetricsEnabled :: Maybe (Val Bool)
  , _athenaWorkGroupWorkGroupConfigurationUpdatesRemoveBytesScannedCutoffPerQuery :: Maybe (Val Bool)
  , _athenaWorkGroupWorkGroupConfigurationUpdatesRequesterPaysEnabled :: Maybe (Val Bool)
  , _athenaWorkGroupWorkGroupConfigurationUpdatesResultConfigurationUpdates :: Maybe AthenaWorkGroupResultConfigurationUpdates
  } deriving (Show, Eq)

instance ToJSON AthenaWorkGroupWorkGroupConfigurationUpdates where
  toJSON AthenaWorkGroupWorkGroupConfigurationUpdates{..} =
    object $
    catMaybes
    [ fmap (("BytesScannedCutoffPerQuery",) . toJSON) _athenaWorkGroupWorkGroupConfigurationUpdatesBytesScannedCutoffPerQuery
    , fmap (("EnforceWorkGroupConfiguration",) . toJSON) _athenaWorkGroupWorkGroupConfigurationUpdatesEnforceWorkGroupConfiguration
    , fmap (("PublishCloudWatchMetricsEnabled",) . toJSON) _athenaWorkGroupWorkGroupConfigurationUpdatesPublishCloudWatchMetricsEnabled
    , fmap (("RemoveBytesScannedCutoffPerQuery",) . toJSON) _athenaWorkGroupWorkGroupConfigurationUpdatesRemoveBytesScannedCutoffPerQuery
    , fmap (("RequesterPaysEnabled",) . toJSON) _athenaWorkGroupWorkGroupConfigurationUpdatesRequesterPaysEnabled
    , fmap (("ResultConfigurationUpdates",) . toJSON) _athenaWorkGroupWorkGroupConfigurationUpdatesResultConfigurationUpdates
    ]

-- | Constructor for 'AthenaWorkGroupWorkGroupConfigurationUpdates' containing
-- required fields as arguments.
athenaWorkGroupWorkGroupConfigurationUpdates
  :: AthenaWorkGroupWorkGroupConfigurationUpdates
athenaWorkGroupWorkGroupConfigurationUpdates  =
  AthenaWorkGroupWorkGroupConfigurationUpdates
  { _athenaWorkGroupWorkGroupConfigurationUpdatesBytesScannedCutoffPerQuery = Nothing
  , _athenaWorkGroupWorkGroupConfigurationUpdatesEnforceWorkGroupConfiguration = Nothing
  , _athenaWorkGroupWorkGroupConfigurationUpdatesPublishCloudWatchMetricsEnabled = Nothing
  , _athenaWorkGroupWorkGroupConfigurationUpdatesRemoveBytesScannedCutoffPerQuery = Nothing
  , _athenaWorkGroupWorkGroupConfigurationUpdatesRequesterPaysEnabled = Nothing
  , _athenaWorkGroupWorkGroupConfigurationUpdatesResultConfigurationUpdates = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-bytesscannedcutoffperquery
awgwgcuBytesScannedCutoffPerQuery :: Lens' AthenaWorkGroupWorkGroupConfigurationUpdates (Maybe (Val Integer))
awgwgcuBytesScannedCutoffPerQuery = lens _athenaWorkGroupWorkGroupConfigurationUpdatesBytesScannedCutoffPerQuery (\s a -> s { _athenaWorkGroupWorkGroupConfigurationUpdatesBytesScannedCutoffPerQuery = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration
awgwgcuEnforceWorkGroupConfiguration :: Lens' AthenaWorkGroupWorkGroupConfigurationUpdates (Maybe (Val Bool))
awgwgcuEnforceWorkGroupConfiguration = lens _athenaWorkGroupWorkGroupConfigurationUpdatesEnforceWorkGroupConfiguration (\s a -> s { _athenaWorkGroupWorkGroupConfigurationUpdatesEnforceWorkGroupConfiguration = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-publishcloudwatchmetricsenabled
awgwgcuPublishCloudWatchMetricsEnabled :: Lens' AthenaWorkGroupWorkGroupConfigurationUpdates (Maybe (Val Bool))
awgwgcuPublishCloudWatchMetricsEnabled = lens _athenaWorkGroupWorkGroupConfigurationUpdatesPublishCloudWatchMetricsEnabled (\s a -> s { _athenaWorkGroupWorkGroupConfigurationUpdatesPublishCloudWatchMetricsEnabled = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-removebytesscannedcutoffperquery
awgwgcuRemoveBytesScannedCutoffPerQuery :: Lens' AthenaWorkGroupWorkGroupConfigurationUpdates (Maybe (Val Bool))
awgwgcuRemoveBytesScannedCutoffPerQuery = lens _athenaWorkGroupWorkGroupConfigurationUpdatesRemoveBytesScannedCutoffPerQuery (\s a -> s { _athenaWorkGroupWorkGroupConfigurationUpdatesRemoveBytesScannedCutoffPerQuery = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-requesterpaysenabled
awgwgcuRequesterPaysEnabled :: Lens' AthenaWorkGroupWorkGroupConfigurationUpdates (Maybe (Val Bool))
awgwgcuRequesterPaysEnabled = lens _athenaWorkGroupWorkGroupConfigurationUpdatesRequesterPaysEnabled (\s a -> s { _athenaWorkGroupWorkGroupConfigurationUpdatesRequesterPaysEnabled = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-resultconfigurationupdates
awgwgcuResultConfigurationUpdates :: Lens' AthenaWorkGroupWorkGroupConfigurationUpdates (Maybe AthenaWorkGroupResultConfigurationUpdates)
awgwgcuResultConfigurationUpdates = lens _athenaWorkGroupWorkGroupConfigurationUpdatesResultConfigurationUpdates (\s a -> s { _athenaWorkGroupWorkGroupConfigurationUpdatesResultConfigurationUpdates = a })