module Stratosphere.FSx.FileSystem.AuditLogConfigurationProperty (
        AuditLogConfigurationProperty(..), mkAuditLogConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AuditLogConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html>
    AuditLogConfigurationProperty {AuditLogConfigurationProperty -> ()
haddock_workaround_ :: (),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration-auditlogdestination>
                                   AuditLogConfigurationProperty -> Maybe (Value Text)
auditLogDestination :: (Prelude.Maybe (Value Prelude.Text)),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration-fileaccessauditloglevel>
                                   AuditLogConfigurationProperty -> Value Text
fileAccessAuditLogLevel :: (Value Prelude.Text),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration-fileshareaccessauditloglevel>
                                   AuditLogConfigurationProperty -> Value Text
fileShareAccessAuditLogLevel :: (Value Prelude.Text)}
  deriving stock (AuditLogConfigurationProperty
-> AuditLogConfigurationProperty -> Bool
(AuditLogConfigurationProperty
 -> AuditLogConfigurationProperty -> Bool)
-> (AuditLogConfigurationProperty
    -> AuditLogConfigurationProperty -> Bool)
-> Eq AuditLogConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AuditLogConfigurationProperty
-> AuditLogConfigurationProperty -> Bool
== :: AuditLogConfigurationProperty
-> AuditLogConfigurationProperty -> Bool
$c/= :: AuditLogConfigurationProperty
-> AuditLogConfigurationProperty -> Bool
/= :: AuditLogConfigurationProperty
-> AuditLogConfigurationProperty -> Bool
Prelude.Eq, Int -> AuditLogConfigurationProperty -> ShowS
[AuditLogConfigurationProperty] -> ShowS
AuditLogConfigurationProperty -> String
(Int -> AuditLogConfigurationProperty -> ShowS)
-> (AuditLogConfigurationProperty -> String)
-> ([AuditLogConfigurationProperty] -> ShowS)
-> Show AuditLogConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AuditLogConfigurationProperty -> ShowS
showsPrec :: Int -> AuditLogConfigurationProperty -> ShowS
$cshow :: AuditLogConfigurationProperty -> String
show :: AuditLogConfigurationProperty -> String
$cshowList :: [AuditLogConfigurationProperty] -> ShowS
showList :: [AuditLogConfigurationProperty] -> ShowS
Prelude.Show)
mkAuditLogConfigurationProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> AuditLogConfigurationProperty
mkAuditLogConfigurationProperty :: Value Text -> Value Text -> AuditLogConfigurationProperty
mkAuditLogConfigurationProperty
  Value Text
fileAccessAuditLogLevel
  Value Text
fileShareAccessAuditLogLevel
  = AuditLogConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       fileAccessAuditLogLevel :: Value Text
fileAccessAuditLogLevel = Value Text
fileAccessAuditLogLevel,
       fileShareAccessAuditLogLevel :: Value Text
fileShareAccessAuditLogLevel = Value Text
fileShareAccessAuditLogLevel,
       auditLogDestination :: Maybe (Value Text)
auditLogDestination = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties AuditLogConfigurationProperty where
  toResourceProperties :: AuditLogConfigurationProperty -> ResourceProperties
toResourceProperties AuditLogConfigurationProperty {Maybe (Value Text)
()
Value Text
haddock_workaround_ :: AuditLogConfigurationProperty -> ()
auditLogDestination :: AuditLogConfigurationProperty -> Maybe (Value Text)
fileAccessAuditLogLevel :: AuditLogConfigurationProperty -> Value Text
fileShareAccessAuditLogLevel :: AuditLogConfigurationProperty -> Value Text
haddock_workaround_ :: ()
auditLogDestination :: Maybe (Value Text)
fileAccessAuditLogLevel :: Value Text
fileShareAccessAuditLogLevel :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::FSx::FileSystem.AuditLogConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"FileAccessAuditLogLevel" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
fileAccessAuditLogLevel,
                            Key
"FileShareAccessAuditLogLevel"
                              Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
fileShareAccessAuditLogLevel]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AuditLogDestination"
                                 (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
auditLogDestination]))}
instance JSON.ToJSON AuditLogConfigurationProperty where
  toJSON :: AuditLogConfigurationProperty -> Value
toJSON AuditLogConfigurationProperty {Maybe (Value Text)
()
Value Text
haddock_workaround_ :: AuditLogConfigurationProperty -> ()
auditLogDestination :: AuditLogConfigurationProperty -> Maybe (Value Text)
fileAccessAuditLogLevel :: AuditLogConfigurationProperty -> Value Text
fileShareAccessAuditLogLevel :: AuditLogConfigurationProperty -> Value Text
haddock_workaround_ :: ()
auditLogDestination :: Maybe (Value Text)
fileAccessAuditLogLevel :: Value Text
fileShareAccessAuditLogLevel :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"FileAccessAuditLogLevel" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
fileAccessAuditLogLevel,
               Key
"FileShareAccessAuditLogLevel"
                 Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
fileShareAccessAuditLogLevel]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"AuditLogDestination"
                    (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
auditLogDestination])))
instance Property "AuditLogDestination" AuditLogConfigurationProperty where
  type PropertyType "AuditLogDestination" AuditLogConfigurationProperty = Value Prelude.Text
  set :: PropertyType "AuditLogDestination" AuditLogConfigurationProperty
-> AuditLogConfigurationProperty -> AuditLogConfigurationProperty
set PropertyType "AuditLogDestination" AuditLogConfigurationProperty
newValue AuditLogConfigurationProperty {Maybe (Value Text)
()
Value Text
haddock_workaround_ :: AuditLogConfigurationProperty -> ()
auditLogDestination :: AuditLogConfigurationProperty -> Maybe (Value Text)
fileAccessAuditLogLevel :: AuditLogConfigurationProperty -> Value Text
fileShareAccessAuditLogLevel :: AuditLogConfigurationProperty -> Value Text
haddock_workaround_ :: ()
auditLogDestination :: Maybe (Value Text)
fileAccessAuditLogLevel :: Value Text
fileShareAccessAuditLogLevel :: Value Text
..}
    = AuditLogConfigurationProperty
        {auditLogDestination :: Maybe (Value Text)
auditLogDestination = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "AuditLogDestination" AuditLogConfigurationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
fileAccessAuditLogLevel :: Value Text
fileShareAccessAuditLogLevel :: Value Text
haddock_workaround_ :: ()
fileAccessAuditLogLevel :: Value Text
fileShareAccessAuditLogLevel :: Value Text
..}
instance Property "FileAccessAuditLogLevel" AuditLogConfigurationProperty where
  type PropertyType "FileAccessAuditLogLevel" AuditLogConfigurationProperty = Value Prelude.Text
  set :: PropertyType
  "FileAccessAuditLogLevel" AuditLogConfigurationProperty
-> AuditLogConfigurationProperty -> AuditLogConfigurationProperty
set PropertyType
  "FileAccessAuditLogLevel" AuditLogConfigurationProperty
newValue AuditLogConfigurationProperty {Maybe (Value Text)
()
Value Text
haddock_workaround_ :: AuditLogConfigurationProperty -> ()
auditLogDestination :: AuditLogConfigurationProperty -> Maybe (Value Text)
fileAccessAuditLogLevel :: AuditLogConfigurationProperty -> Value Text
fileShareAccessAuditLogLevel :: AuditLogConfigurationProperty -> Value Text
haddock_workaround_ :: ()
auditLogDestination :: Maybe (Value Text)
fileAccessAuditLogLevel :: Value Text
fileShareAccessAuditLogLevel :: Value Text
..}
    = AuditLogConfigurationProperty
        {fileAccessAuditLogLevel :: Value Text
fileAccessAuditLogLevel = PropertyType
  "FileAccessAuditLogLevel" AuditLogConfigurationProperty
Value Text
newValue, Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ()
auditLogDestination :: Maybe (Value Text)
fileShareAccessAuditLogLevel :: Value Text
haddock_workaround_ :: ()
auditLogDestination :: Maybe (Value Text)
fileShareAccessAuditLogLevel :: Value Text
..}
instance Property "FileShareAccessAuditLogLevel" AuditLogConfigurationProperty where
  type PropertyType "FileShareAccessAuditLogLevel" AuditLogConfigurationProperty = Value Prelude.Text
  set :: PropertyType
  "FileShareAccessAuditLogLevel" AuditLogConfigurationProperty
-> AuditLogConfigurationProperty -> AuditLogConfigurationProperty
set PropertyType
  "FileShareAccessAuditLogLevel" AuditLogConfigurationProperty
newValue AuditLogConfigurationProperty {Maybe (Value Text)
()
Value Text
haddock_workaround_ :: AuditLogConfigurationProperty -> ()
auditLogDestination :: AuditLogConfigurationProperty -> Maybe (Value Text)
fileAccessAuditLogLevel :: AuditLogConfigurationProperty -> Value Text
fileShareAccessAuditLogLevel :: AuditLogConfigurationProperty -> Value Text
haddock_workaround_ :: ()
auditLogDestination :: Maybe (Value Text)
fileAccessAuditLogLevel :: Value Text
fileShareAccessAuditLogLevel :: Value Text
..}
    = AuditLogConfigurationProperty
        {fileShareAccessAuditLogLevel :: Value Text
fileShareAccessAuditLogLevel = PropertyType
  "FileShareAccessAuditLogLevel" AuditLogConfigurationProperty
Value Text
newValue, Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ()
auditLogDestination :: Maybe (Value Text)
fileAccessAuditLogLevel :: Value Text
haddock_workaround_ :: ()
auditLogDestination :: Maybe (Value Text)
fileAccessAuditLogLevel :: Value Text
..}