packages feed

stratosphere-cloudtrail-1.0.0: gen/Stratosphere/CloudTrail/EventDataStore.hs

module Stratosphere.CloudTrail.EventDataStore (
        module Exports, EventDataStore(..), mkEventDataStore
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CloudTrail.EventDataStore.AdvancedEventSelectorProperty as Exports
import {-# SOURCE #-} Stratosphere.CloudTrail.EventDataStore.ContextKeySelectorProperty as Exports
import {-# SOURCE #-} Stratosphere.CloudTrail.EventDataStore.InsightSelectorProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data EventDataStore
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html>
    EventDataStore {haddock_workaround_ :: (),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-advancedeventselectors>
                    advancedEventSelectors :: (Prelude.Maybe [AdvancedEventSelectorProperty]),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-billingmode>
                    billingMode :: (Prelude.Maybe (Value Prelude.Text)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-contextkeyselectors>
                    contextKeySelectors :: (Prelude.Maybe [ContextKeySelectorProperty]),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-federationenabled>
                    federationEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-federationrolearn>
                    federationRoleArn :: (Prelude.Maybe (Value Prelude.Text)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-ingestionenabled>
                    ingestionEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-insightselectors>
                    insightSelectors :: (Prelude.Maybe [InsightSelectorProperty]),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-insightsdestination>
                    insightsDestination :: (Prelude.Maybe (Value Prelude.Text)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-kmskeyid>
                    kmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-maxeventsize>
                    maxEventSize :: (Prelude.Maybe (Value Prelude.Text)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-multiregionenabled>
                    multiRegionEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-name>
                    name :: (Prelude.Maybe (Value Prelude.Text)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-organizationenabled>
                    organizationEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-retentionperiod>
                    retentionPeriod :: (Prelude.Maybe (Value Prelude.Integer)),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-tags>
                    tags :: (Prelude.Maybe [Tag]),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-eventdatastore.html#cfn-cloudtrail-eventdatastore-terminationprotectionenabled>
                    terminationProtectionEnabled :: (Prelude.Maybe (Value Prelude.Bool))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkEventDataStore :: EventDataStore
mkEventDataStore
  = EventDataStore
      {haddock_workaround_ = (),
       advancedEventSelectors = Prelude.Nothing,
       billingMode = Prelude.Nothing,
       contextKeySelectors = Prelude.Nothing,
       federationEnabled = Prelude.Nothing,
       federationRoleArn = Prelude.Nothing,
       ingestionEnabled = Prelude.Nothing,
       insightSelectors = Prelude.Nothing,
       insightsDestination = Prelude.Nothing, kmsKeyId = Prelude.Nothing,
       maxEventSize = Prelude.Nothing,
       multiRegionEnabled = Prelude.Nothing, name = Prelude.Nothing,
       organizationEnabled = Prelude.Nothing,
       retentionPeriod = Prelude.Nothing, tags = Prelude.Nothing,
       terminationProtectionEnabled = Prelude.Nothing}
instance ToResourceProperties EventDataStore where
  toResourceProperties EventDataStore {..}
    = ResourceProperties
        {awsType = "AWS::CloudTrail::EventDataStore",
         supportsTags = Prelude.True,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "AdvancedEventSelectors"
                              Prelude.<$> advancedEventSelectors,
                            (JSON..=) "BillingMode" Prelude.<$> billingMode,
                            (JSON..=) "ContextKeySelectors" Prelude.<$> contextKeySelectors,
                            (JSON..=) "FederationEnabled" Prelude.<$> federationEnabled,
                            (JSON..=) "FederationRoleArn" Prelude.<$> federationRoleArn,
                            (JSON..=) "IngestionEnabled" Prelude.<$> ingestionEnabled,
                            (JSON..=) "InsightSelectors" Prelude.<$> insightSelectors,
                            (JSON..=) "InsightsDestination" Prelude.<$> insightsDestination,
                            (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
                            (JSON..=) "MaxEventSize" Prelude.<$> maxEventSize,
                            (JSON..=) "MultiRegionEnabled" Prelude.<$> multiRegionEnabled,
                            (JSON..=) "Name" Prelude.<$> name,
                            (JSON..=) "OrganizationEnabled" Prelude.<$> organizationEnabled,
                            (JSON..=) "RetentionPeriod" Prelude.<$> retentionPeriod,
                            (JSON..=) "Tags" Prelude.<$> tags,
                            (JSON..=) "TerminationProtectionEnabled"
                              Prelude.<$> terminationProtectionEnabled])}
instance JSON.ToJSON EventDataStore where
  toJSON EventDataStore {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "AdvancedEventSelectors"
                 Prelude.<$> advancedEventSelectors,
               (JSON..=) "BillingMode" Prelude.<$> billingMode,
               (JSON..=) "ContextKeySelectors" Prelude.<$> contextKeySelectors,
               (JSON..=) "FederationEnabled" Prelude.<$> federationEnabled,
               (JSON..=) "FederationRoleArn" Prelude.<$> federationRoleArn,
               (JSON..=) "IngestionEnabled" Prelude.<$> ingestionEnabled,
               (JSON..=) "InsightSelectors" Prelude.<$> insightSelectors,
               (JSON..=) "InsightsDestination" Prelude.<$> insightsDestination,
               (JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
               (JSON..=) "MaxEventSize" Prelude.<$> maxEventSize,
               (JSON..=) "MultiRegionEnabled" Prelude.<$> multiRegionEnabled,
               (JSON..=) "Name" Prelude.<$> name,
               (JSON..=) "OrganizationEnabled" Prelude.<$> organizationEnabled,
               (JSON..=) "RetentionPeriod" Prelude.<$> retentionPeriod,
               (JSON..=) "Tags" Prelude.<$> tags,
               (JSON..=) "TerminationProtectionEnabled"
                 Prelude.<$> terminationProtectionEnabled]))
instance Property "AdvancedEventSelectors" EventDataStore where
  type PropertyType "AdvancedEventSelectors" EventDataStore = [AdvancedEventSelectorProperty]
  set newValue EventDataStore {..}
    = EventDataStore
        {advancedEventSelectors = Prelude.pure newValue, ..}
instance Property "BillingMode" EventDataStore where
  type PropertyType "BillingMode" EventDataStore = Value Prelude.Text
  set newValue EventDataStore {..}
    = EventDataStore {billingMode = Prelude.pure newValue, ..}
instance Property "ContextKeySelectors" EventDataStore where
  type PropertyType "ContextKeySelectors" EventDataStore = [ContextKeySelectorProperty]
  set newValue EventDataStore {..}
    = EventDataStore {contextKeySelectors = Prelude.pure newValue, ..}
instance Property "FederationEnabled" EventDataStore where
  type PropertyType "FederationEnabled" EventDataStore = Value Prelude.Bool
  set newValue EventDataStore {..}
    = EventDataStore {federationEnabled = Prelude.pure newValue, ..}
instance Property "FederationRoleArn" EventDataStore where
  type PropertyType "FederationRoleArn" EventDataStore = Value Prelude.Text
  set newValue EventDataStore {..}
    = EventDataStore {federationRoleArn = Prelude.pure newValue, ..}
instance Property "IngestionEnabled" EventDataStore where
  type PropertyType "IngestionEnabled" EventDataStore = Value Prelude.Bool
  set newValue EventDataStore {..}
    = EventDataStore {ingestionEnabled = Prelude.pure newValue, ..}
instance Property "InsightSelectors" EventDataStore where
  type PropertyType "InsightSelectors" EventDataStore = [InsightSelectorProperty]
  set newValue EventDataStore {..}
    = EventDataStore {insightSelectors = Prelude.pure newValue, ..}
instance Property "InsightsDestination" EventDataStore where
  type PropertyType "InsightsDestination" EventDataStore = Value Prelude.Text
  set newValue EventDataStore {..}
    = EventDataStore {insightsDestination = Prelude.pure newValue, ..}
instance Property "KmsKeyId" EventDataStore where
  type PropertyType "KmsKeyId" EventDataStore = Value Prelude.Text
  set newValue EventDataStore {..}
    = EventDataStore {kmsKeyId = Prelude.pure newValue, ..}
instance Property "MaxEventSize" EventDataStore where
  type PropertyType "MaxEventSize" EventDataStore = Value Prelude.Text
  set newValue EventDataStore {..}
    = EventDataStore {maxEventSize = Prelude.pure newValue, ..}
instance Property "MultiRegionEnabled" EventDataStore where
  type PropertyType "MultiRegionEnabled" EventDataStore = Value Prelude.Bool
  set newValue EventDataStore {..}
    = EventDataStore {multiRegionEnabled = Prelude.pure newValue, ..}
instance Property "Name" EventDataStore where
  type PropertyType "Name" EventDataStore = Value Prelude.Text
  set newValue EventDataStore {..}
    = EventDataStore {name = Prelude.pure newValue, ..}
instance Property "OrganizationEnabled" EventDataStore where
  type PropertyType "OrganizationEnabled" EventDataStore = Value Prelude.Bool
  set newValue EventDataStore {..}
    = EventDataStore {organizationEnabled = Prelude.pure newValue, ..}
instance Property "RetentionPeriod" EventDataStore where
  type PropertyType "RetentionPeriod" EventDataStore = Value Prelude.Integer
  set newValue EventDataStore {..}
    = EventDataStore {retentionPeriod = Prelude.pure newValue, ..}
instance Property "Tags" EventDataStore where
  type PropertyType "Tags" EventDataStore = [Tag]
  set newValue EventDataStore {..}
    = EventDataStore {tags = Prelude.pure newValue, ..}
instance Property "TerminationProtectionEnabled" EventDataStore where
  type PropertyType "TerminationProtectionEnabled" EventDataStore = Value Prelude.Bool
  set newValue EventDataStore {..}
    = EventDataStore
        {terminationProtectionEnabled = Prelude.pure newValue, ..}