packages feed

stratosphere-athena-1.0.0: gen/Stratosphere/Athena/WorkGroup/WorkGroupConfigurationProperty.hs

module Stratosphere.Athena.WorkGroup.WorkGroupConfigurationProperty (
        module Exports, WorkGroupConfigurationProperty(..),
        mkWorkGroupConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Athena.WorkGroup.CustomerContentEncryptionConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Athena.WorkGroup.EngineVersionProperty as Exports
import {-# SOURCE #-} Stratosphere.Athena.WorkGroup.ManagedQueryResultsConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Athena.WorkGroup.ResultConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data WorkGroupConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html>
    WorkGroupConfigurationProperty {haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-additionalconfiguration>
                                    additionalConfiguration :: (Prelude.Maybe (Value Prelude.Text)),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-bytesscannedcutoffperquery>
                                    bytesScannedCutoffPerQuery :: (Prelude.Maybe (Value Prelude.Integer)),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-customercontentencryptionconfiguration>
                                    customerContentEncryptionConfiguration :: (Prelude.Maybe CustomerContentEncryptionConfigurationProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-enforceworkgroupconfiguration>
                                    enforceWorkGroupConfiguration :: (Prelude.Maybe (Value Prelude.Bool)),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-engineversion>
                                    engineVersion :: (Prelude.Maybe EngineVersionProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-executionrole>
                                    executionRole :: (Prelude.Maybe (Value Prelude.Text)),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-managedqueryresultsconfiguration>
                                    managedQueryResultsConfiguration :: (Prelude.Maybe ManagedQueryResultsConfigurationProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-publishcloudwatchmetricsenabled>
                                    publishCloudWatchMetricsEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-requesterpaysenabled>
                                    requesterPaysEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-resultconfiguration>
                                    resultConfiguration :: (Prelude.Maybe ResultConfigurationProperty)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkWorkGroupConfigurationProperty :: WorkGroupConfigurationProperty
mkWorkGroupConfigurationProperty
  = WorkGroupConfigurationProperty
      {haddock_workaround_ = (),
       additionalConfiguration = Prelude.Nothing,
       bytesScannedCutoffPerQuery = Prelude.Nothing,
       customerContentEncryptionConfiguration = Prelude.Nothing,
       enforceWorkGroupConfiguration = Prelude.Nothing,
       engineVersion = Prelude.Nothing, executionRole = Prelude.Nothing,
       managedQueryResultsConfiguration = Prelude.Nothing,
       publishCloudWatchMetricsEnabled = Prelude.Nothing,
       requesterPaysEnabled = Prelude.Nothing,
       resultConfiguration = Prelude.Nothing}
instance ToResourceProperties WorkGroupConfigurationProperty where
  toResourceProperties WorkGroupConfigurationProperty {..}
    = ResourceProperties
        {awsType = "AWS::Athena::WorkGroup.WorkGroupConfiguration",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "AdditionalConfiguration"
                              Prelude.<$> additionalConfiguration,
                            (JSON..=) "BytesScannedCutoffPerQuery"
                              Prelude.<$> bytesScannedCutoffPerQuery,
                            (JSON..=) "CustomerContentEncryptionConfiguration"
                              Prelude.<$> customerContentEncryptionConfiguration,
                            (JSON..=) "EnforceWorkGroupConfiguration"
                              Prelude.<$> enforceWorkGroupConfiguration,
                            (JSON..=) "EngineVersion" Prelude.<$> engineVersion,
                            (JSON..=) "ExecutionRole" Prelude.<$> executionRole,
                            (JSON..=) "ManagedQueryResultsConfiguration"
                              Prelude.<$> managedQueryResultsConfiguration,
                            (JSON..=) "PublishCloudWatchMetricsEnabled"
                              Prelude.<$> publishCloudWatchMetricsEnabled,
                            (JSON..=) "RequesterPaysEnabled" Prelude.<$> requesterPaysEnabled,
                            (JSON..=) "ResultConfiguration" Prelude.<$> resultConfiguration])}
instance JSON.ToJSON WorkGroupConfigurationProperty where
  toJSON WorkGroupConfigurationProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "AdditionalConfiguration"
                 Prelude.<$> additionalConfiguration,
               (JSON..=) "BytesScannedCutoffPerQuery"
                 Prelude.<$> bytesScannedCutoffPerQuery,
               (JSON..=) "CustomerContentEncryptionConfiguration"
                 Prelude.<$> customerContentEncryptionConfiguration,
               (JSON..=) "EnforceWorkGroupConfiguration"
                 Prelude.<$> enforceWorkGroupConfiguration,
               (JSON..=) "EngineVersion" Prelude.<$> engineVersion,
               (JSON..=) "ExecutionRole" Prelude.<$> executionRole,
               (JSON..=) "ManagedQueryResultsConfiguration"
                 Prelude.<$> managedQueryResultsConfiguration,
               (JSON..=) "PublishCloudWatchMetricsEnabled"
                 Prelude.<$> publishCloudWatchMetricsEnabled,
               (JSON..=) "RequesterPaysEnabled" Prelude.<$> requesterPaysEnabled,
               (JSON..=) "ResultConfiguration" Prelude.<$> resultConfiguration]))
instance Property "AdditionalConfiguration" WorkGroupConfigurationProperty where
  type PropertyType "AdditionalConfiguration" WorkGroupConfigurationProperty = Value Prelude.Text
  set newValue WorkGroupConfigurationProperty {..}
    = WorkGroupConfigurationProperty
        {additionalConfiguration = Prelude.pure newValue, ..}
instance Property "BytesScannedCutoffPerQuery" WorkGroupConfigurationProperty where
  type PropertyType "BytesScannedCutoffPerQuery" WorkGroupConfigurationProperty = Value Prelude.Integer
  set newValue WorkGroupConfigurationProperty {..}
    = WorkGroupConfigurationProperty
        {bytesScannedCutoffPerQuery = Prelude.pure newValue, ..}
instance Property "CustomerContentEncryptionConfiguration" WorkGroupConfigurationProperty where
  type PropertyType "CustomerContentEncryptionConfiguration" WorkGroupConfigurationProperty = CustomerContentEncryptionConfigurationProperty
  set newValue WorkGroupConfigurationProperty {..}
    = WorkGroupConfigurationProperty
        {customerContentEncryptionConfiguration = Prelude.pure newValue,
         ..}
instance Property "EnforceWorkGroupConfiguration" WorkGroupConfigurationProperty where
  type PropertyType "EnforceWorkGroupConfiguration" WorkGroupConfigurationProperty = Value Prelude.Bool
  set newValue WorkGroupConfigurationProperty {..}
    = WorkGroupConfigurationProperty
        {enforceWorkGroupConfiguration = Prelude.pure newValue, ..}
instance Property "EngineVersion" WorkGroupConfigurationProperty where
  type PropertyType "EngineVersion" WorkGroupConfigurationProperty = EngineVersionProperty
  set newValue WorkGroupConfigurationProperty {..}
    = WorkGroupConfigurationProperty
        {engineVersion = Prelude.pure newValue, ..}
instance Property "ExecutionRole" WorkGroupConfigurationProperty where
  type PropertyType "ExecutionRole" WorkGroupConfigurationProperty = Value Prelude.Text
  set newValue WorkGroupConfigurationProperty {..}
    = WorkGroupConfigurationProperty
        {executionRole = Prelude.pure newValue, ..}
instance Property "ManagedQueryResultsConfiguration" WorkGroupConfigurationProperty where
  type PropertyType "ManagedQueryResultsConfiguration" WorkGroupConfigurationProperty = ManagedQueryResultsConfigurationProperty
  set newValue WorkGroupConfigurationProperty {..}
    = WorkGroupConfigurationProperty
        {managedQueryResultsConfiguration = Prelude.pure newValue, ..}
instance Property "PublishCloudWatchMetricsEnabled" WorkGroupConfigurationProperty where
  type PropertyType "PublishCloudWatchMetricsEnabled" WorkGroupConfigurationProperty = Value Prelude.Bool
  set newValue WorkGroupConfigurationProperty {..}
    = WorkGroupConfigurationProperty
        {publishCloudWatchMetricsEnabled = Prelude.pure newValue, ..}
instance Property "RequesterPaysEnabled" WorkGroupConfigurationProperty where
  type PropertyType "RequesterPaysEnabled" WorkGroupConfigurationProperty = Value Prelude.Bool
  set newValue WorkGroupConfigurationProperty {..}
    = WorkGroupConfigurationProperty
        {requesterPaysEnabled = Prelude.pure newValue, ..}
instance Property "ResultConfiguration" WorkGroupConfigurationProperty where
  type PropertyType "ResultConfiguration" WorkGroupConfigurationProperty = ResultConfigurationProperty
  set newValue WorkGroupConfigurationProperty {..}
    = WorkGroupConfigurationProperty
        {resultConfiguration = Prelude.pure newValue, ..}