packages feed

stratosphere-config-1.0.0: gen/Stratosphere/Config/ConfigurationRecorder/RecordingGroupProperty.hs

module Stratosphere.Config.ConfigurationRecorder.RecordingGroupProperty (
        module Exports, RecordingGroupProperty(..),
        mkRecordingGroupProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Config.ConfigurationRecorder.ExclusionByResourceTypesProperty as Exports
import {-# SOURCE #-} Stratosphere.Config.ConfigurationRecorder.RecordingStrategyProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data RecordingGroupProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html>
    RecordingGroupProperty {haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-allsupported>
                            allSupported :: (Prelude.Maybe (Value Prelude.Bool)),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-exclusionbyresourcetypes>
                            exclusionByResourceTypes :: (Prelude.Maybe ExclusionByResourceTypesProperty),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-includeglobalresourcetypes>
                            includeGlobalResourceTypes :: (Prelude.Maybe (Value Prelude.Bool)),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-recordingstrategy>
                            recordingStrategy :: (Prelude.Maybe RecordingStrategyProperty),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-resourcetypes>
                            resourceTypes :: (Prelude.Maybe (ValueList Prelude.Text))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkRecordingGroupProperty :: RecordingGroupProperty
mkRecordingGroupProperty
  = RecordingGroupProperty
      {haddock_workaround_ = (), allSupported = Prelude.Nothing,
       exclusionByResourceTypes = Prelude.Nothing,
       includeGlobalResourceTypes = Prelude.Nothing,
       recordingStrategy = Prelude.Nothing,
       resourceTypes = Prelude.Nothing}
instance ToResourceProperties RecordingGroupProperty where
  toResourceProperties RecordingGroupProperty {..}
    = ResourceProperties
        {awsType = "AWS::Config::ConfigurationRecorder.RecordingGroup",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "AllSupported" Prelude.<$> allSupported,
                            (JSON..=) "ExclusionByResourceTypes"
                              Prelude.<$> exclusionByResourceTypes,
                            (JSON..=) "IncludeGlobalResourceTypes"
                              Prelude.<$> includeGlobalResourceTypes,
                            (JSON..=) "RecordingStrategy" Prelude.<$> recordingStrategy,
                            (JSON..=) "ResourceTypes" Prelude.<$> resourceTypes])}
instance JSON.ToJSON RecordingGroupProperty where
  toJSON RecordingGroupProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "AllSupported" Prelude.<$> allSupported,
               (JSON..=) "ExclusionByResourceTypes"
                 Prelude.<$> exclusionByResourceTypes,
               (JSON..=) "IncludeGlobalResourceTypes"
                 Prelude.<$> includeGlobalResourceTypes,
               (JSON..=) "RecordingStrategy" Prelude.<$> recordingStrategy,
               (JSON..=) "ResourceTypes" Prelude.<$> resourceTypes]))
instance Property "AllSupported" RecordingGroupProperty where
  type PropertyType "AllSupported" RecordingGroupProperty = Value Prelude.Bool
  set newValue RecordingGroupProperty {..}
    = RecordingGroupProperty {allSupported = Prelude.pure newValue, ..}
instance Property "ExclusionByResourceTypes" RecordingGroupProperty where
  type PropertyType "ExclusionByResourceTypes" RecordingGroupProperty = ExclusionByResourceTypesProperty
  set newValue RecordingGroupProperty {..}
    = RecordingGroupProperty
        {exclusionByResourceTypes = Prelude.pure newValue, ..}
instance Property "IncludeGlobalResourceTypes" RecordingGroupProperty where
  type PropertyType "IncludeGlobalResourceTypes" RecordingGroupProperty = Value Prelude.Bool
  set newValue RecordingGroupProperty {..}
    = RecordingGroupProperty
        {includeGlobalResourceTypes = Prelude.pure newValue, ..}
instance Property "RecordingStrategy" RecordingGroupProperty where
  type PropertyType "RecordingStrategy" RecordingGroupProperty = RecordingStrategyProperty
  set newValue RecordingGroupProperty {..}
    = RecordingGroupProperty
        {recordingStrategy = Prelude.pure newValue, ..}
instance Property "ResourceTypes" RecordingGroupProperty where
  type PropertyType "ResourceTypes" RecordingGroupProperty = ValueList Prelude.Text
  set newValue RecordingGroupProperty {..}
    = RecordingGroupProperty
        {resourceTypes = Prelude.pure newValue, ..}