{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.S3.Types.VersioningConfiguration where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.S3.Internal
import Amazonka.S3.Types.BucketVersioningStatus
import Amazonka.S3.Types.MFADelete
data VersioningConfiguration = VersioningConfiguration'
{
VersioningConfiguration -> Maybe MFADelete
mfaDelete :: Prelude.Maybe MFADelete,
VersioningConfiguration -> Maybe BucketVersioningStatus
status :: Prelude.Maybe BucketVersioningStatus
}
deriving (VersioningConfiguration -> VersioningConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VersioningConfiguration -> VersioningConfiguration -> Bool
$c/= :: VersioningConfiguration -> VersioningConfiguration -> Bool
== :: VersioningConfiguration -> VersioningConfiguration -> Bool
$c== :: VersioningConfiguration -> VersioningConfiguration -> Bool
Prelude.Eq, ReadPrec [VersioningConfiguration]
ReadPrec VersioningConfiguration
Int -> ReadS VersioningConfiguration
ReadS [VersioningConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [VersioningConfiguration]
$creadListPrec :: ReadPrec [VersioningConfiguration]
readPrec :: ReadPrec VersioningConfiguration
$creadPrec :: ReadPrec VersioningConfiguration
readList :: ReadS [VersioningConfiguration]
$creadList :: ReadS [VersioningConfiguration]
readsPrec :: Int -> ReadS VersioningConfiguration
$creadsPrec :: Int -> ReadS VersioningConfiguration
Prelude.Read, Int -> VersioningConfiguration -> ShowS
[VersioningConfiguration] -> ShowS
VersioningConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VersioningConfiguration] -> ShowS
$cshowList :: [VersioningConfiguration] -> ShowS
show :: VersioningConfiguration -> String
$cshow :: VersioningConfiguration -> String
showsPrec :: Int -> VersioningConfiguration -> ShowS
$cshowsPrec :: Int -> VersioningConfiguration -> ShowS
Prelude.Show, forall x. Rep VersioningConfiguration x -> VersioningConfiguration
forall x. VersioningConfiguration -> Rep VersioningConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep VersioningConfiguration x -> VersioningConfiguration
$cfrom :: forall x. VersioningConfiguration -> Rep VersioningConfiguration x
Prelude.Generic)
newVersioningConfiguration ::
VersioningConfiguration
newVersioningConfiguration :: VersioningConfiguration
newVersioningConfiguration =
VersioningConfiguration'
{ $sel:mfaDelete:VersioningConfiguration' :: Maybe MFADelete
mfaDelete =
forall a. Maybe a
Prelude.Nothing,
$sel:status:VersioningConfiguration' :: Maybe BucketVersioningStatus
status = forall a. Maybe a
Prelude.Nothing
}
versioningConfiguration_mfaDelete :: Lens.Lens' VersioningConfiguration (Prelude.Maybe MFADelete)
versioningConfiguration_mfaDelete :: Lens' VersioningConfiguration (Maybe MFADelete)
versioningConfiguration_mfaDelete = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VersioningConfiguration' {Maybe MFADelete
mfaDelete :: Maybe MFADelete
$sel:mfaDelete:VersioningConfiguration' :: VersioningConfiguration -> Maybe MFADelete
mfaDelete} -> Maybe MFADelete
mfaDelete) (\s :: VersioningConfiguration
s@VersioningConfiguration' {} Maybe MFADelete
a -> VersioningConfiguration
s {$sel:mfaDelete:VersioningConfiguration' :: Maybe MFADelete
mfaDelete = Maybe MFADelete
a} :: VersioningConfiguration)
versioningConfiguration_status :: Lens.Lens' VersioningConfiguration (Prelude.Maybe BucketVersioningStatus)
versioningConfiguration_status :: Lens' VersioningConfiguration (Maybe BucketVersioningStatus)
versioningConfiguration_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VersioningConfiguration' {Maybe BucketVersioningStatus
status :: Maybe BucketVersioningStatus
$sel:status:VersioningConfiguration' :: VersioningConfiguration -> Maybe BucketVersioningStatus
status} -> Maybe BucketVersioningStatus
status) (\s :: VersioningConfiguration
s@VersioningConfiguration' {} Maybe BucketVersioningStatus
a -> VersioningConfiguration
s {$sel:status:VersioningConfiguration' :: Maybe BucketVersioningStatus
status = Maybe BucketVersioningStatus
a} :: VersioningConfiguration)
instance Prelude.Hashable VersioningConfiguration where
hashWithSalt :: Int -> VersioningConfiguration -> Int
hashWithSalt Int
_salt VersioningConfiguration' {Maybe BucketVersioningStatus
Maybe MFADelete
status :: Maybe BucketVersioningStatus
mfaDelete :: Maybe MFADelete
$sel:status:VersioningConfiguration' :: VersioningConfiguration -> Maybe BucketVersioningStatus
$sel:mfaDelete:VersioningConfiguration' :: VersioningConfiguration -> Maybe MFADelete
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MFADelete
mfaDelete
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BucketVersioningStatus
status
instance Prelude.NFData VersioningConfiguration where
rnf :: VersioningConfiguration -> ()
rnf VersioningConfiguration' {Maybe BucketVersioningStatus
Maybe MFADelete
status :: Maybe BucketVersioningStatus
mfaDelete :: Maybe MFADelete
$sel:status:VersioningConfiguration' :: VersioningConfiguration -> Maybe BucketVersioningStatus
$sel:mfaDelete:VersioningConfiguration' :: VersioningConfiguration -> Maybe MFADelete
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe MFADelete
mfaDelete
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BucketVersioningStatus
status
instance Data.ToXML VersioningConfiguration where
toXML :: VersioningConfiguration -> XML
toXML VersioningConfiguration' {Maybe BucketVersioningStatus
Maybe MFADelete
status :: Maybe BucketVersioningStatus
mfaDelete :: Maybe MFADelete
$sel:status:VersioningConfiguration' :: VersioningConfiguration -> Maybe BucketVersioningStatus
$sel:mfaDelete:VersioningConfiguration' :: VersioningConfiguration -> Maybe MFADelete
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ Name
"MfaDelete" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe MFADelete
mfaDelete,
Name
"Status" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe BucketVersioningStatus
status
]