{-# 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.IntelligentTieringConfiguration 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.IntelligentTieringFilter
import Amazonka.S3.Types.IntelligentTieringStatus
import Amazonka.S3.Types.Tiering
data IntelligentTieringConfiguration = IntelligentTieringConfiguration'
{
IntelligentTieringConfiguration -> Maybe IntelligentTieringFilter
filter' :: Prelude.Maybe IntelligentTieringFilter,
IntelligentTieringConfiguration -> Text
id :: Prelude.Text,
IntelligentTieringConfiguration -> IntelligentTieringStatus
status :: IntelligentTieringStatus,
IntelligentTieringConfiguration -> [Tiering]
tierings :: [Tiering]
}
deriving (IntelligentTieringConfiguration
-> IntelligentTieringConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IntelligentTieringConfiguration
-> IntelligentTieringConfiguration -> Bool
$c/= :: IntelligentTieringConfiguration
-> IntelligentTieringConfiguration -> Bool
== :: IntelligentTieringConfiguration
-> IntelligentTieringConfiguration -> Bool
$c== :: IntelligentTieringConfiguration
-> IntelligentTieringConfiguration -> Bool
Prelude.Eq, ReadPrec [IntelligentTieringConfiguration]
ReadPrec IntelligentTieringConfiguration
Int -> ReadS IntelligentTieringConfiguration
ReadS [IntelligentTieringConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [IntelligentTieringConfiguration]
$creadListPrec :: ReadPrec [IntelligentTieringConfiguration]
readPrec :: ReadPrec IntelligentTieringConfiguration
$creadPrec :: ReadPrec IntelligentTieringConfiguration
readList :: ReadS [IntelligentTieringConfiguration]
$creadList :: ReadS [IntelligentTieringConfiguration]
readsPrec :: Int -> ReadS IntelligentTieringConfiguration
$creadsPrec :: Int -> ReadS IntelligentTieringConfiguration
Prelude.Read, Int -> IntelligentTieringConfiguration -> ShowS
[IntelligentTieringConfiguration] -> ShowS
IntelligentTieringConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IntelligentTieringConfiguration] -> ShowS
$cshowList :: [IntelligentTieringConfiguration] -> ShowS
show :: IntelligentTieringConfiguration -> String
$cshow :: IntelligentTieringConfiguration -> String
showsPrec :: Int -> IntelligentTieringConfiguration -> ShowS
$cshowsPrec :: Int -> IntelligentTieringConfiguration -> ShowS
Prelude.Show, forall x.
Rep IntelligentTieringConfiguration x
-> IntelligentTieringConfiguration
forall x.
IntelligentTieringConfiguration
-> Rep IntelligentTieringConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep IntelligentTieringConfiguration x
-> IntelligentTieringConfiguration
$cfrom :: forall x.
IntelligentTieringConfiguration
-> Rep IntelligentTieringConfiguration x
Prelude.Generic)
newIntelligentTieringConfiguration ::
Prelude.Text ->
IntelligentTieringStatus ->
IntelligentTieringConfiguration
newIntelligentTieringConfiguration :: Text -> IntelligentTieringStatus -> IntelligentTieringConfiguration
newIntelligentTieringConfiguration Text
pId_ IntelligentTieringStatus
pStatus_ =
IntelligentTieringConfiguration'
{ $sel:filter':IntelligentTieringConfiguration' :: Maybe IntelligentTieringFilter
filter' =
forall a. Maybe a
Prelude.Nothing,
$sel:id:IntelligentTieringConfiguration' :: Text
id = Text
pId_,
$sel:status:IntelligentTieringConfiguration' :: IntelligentTieringStatus
status = IntelligentTieringStatus
pStatus_,
$sel:tierings:IntelligentTieringConfiguration' :: [Tiering]
tierings = forall a. Monoid a => a
Prelude.mempty
}
intelligentTieringConfiguration_filter :: Lens.Lens' IntelligentTieringConfiguration (Prelude.Maybe IntelligentTieringFilter)
intelligentTieringConfiguration_filter :: Lens'
IntelligentTieringConfiguration (Maybe IntelligentTieringFilter)
intelligentTieringConfiguration_filter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntelligentTieringConfiguration' {Maybe IntelligentTieringFilter
filter' :: Maybe IntelligentTieringFilter
$sel:filter':IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> Maybe IntelligentTieringFilter
filter'} -> Maybe IntelligentTieringFilter
filter') (\s :: IntelligentTieringConfiguration
s@IntelligentTieringConfiguration' {} Maybe IntelligentTieringFilter
a -> IntelligentTieringConfiguration
s {$sel:filter':IntelligentTieringConfiguration' :: Maybe IntelligentTieringFilter
filter' = Maybe IntelligentTieringFilter
a} :: IntelligentTieringConfiguration)
intelligentTieringConfiguration_id :: Lens.Lens' IntelligentTieringConfiguration Prelude.Text
intelligentTieringConfiguration_id :: Lens' IntelligentTieringConfiguration Text
intelligentTieringConfiguration_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntelligentTieringConfiguration' {Text
id :: Text
$sel:id:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> Text
id} -> Text
id) (\s :: IntelligentTieringConfiguration
s@IntelligentTieringConfiguration' {} Text
a -> IntelligentTieringConfiguration
s {$sel:id:IntelligentTieringConfiguration' :: Text
id = Text
a} :: IntelligentTieringConfiguration)
intelligentTieringConfiguration_status :: Lens.Lens' IntelligentTieringConfiguration IntelligentTieringStatus
intelligentTieringConfiguration_status :: Lens' IntelligentTieringConfiguration IntelligentTieringStatus
intelligentTieringConfiguration_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntelligentTieringConfiguration' {IntelligentTieringStatus
status :: IntelligentTieringStatus
$sel:status:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> IntelligentTieringStatus
status} -> IntelligentTieringStatus
status) (\s :: IntelligentTieringConfiguration
s@IntelligentTieringConfiguration' {} IntelligentTieringStatus
a -> IntelligentTieringConfiguration
s {$sel:status:IntelligentTieringConfiguration' :: IntelligentTieringStatus
status = IntelligentTieringStatus
a} :: IntelligentTieringConfiguration)
intelligentTieringConfiguration_tierings :: Lens.Lens' IntelligentTieringConfiguration [Tiering]
intelligentTieringConfiguration_tierings :: Lens' IntelligentTieringConfiguration [Tiering]
intelligentTieringConfiguration_tierings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntelligentTieringConfiguration' {[Tiering]
tierings :: [Tiering]
$sel:tierings:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> [Tiering]
tierings} -> [Tiering]
tierings) (\s :: IntelligentTieringConfiguration
s@IntelligentTieringConfiguration' {} [Tiering]
a -> IntelligentTieringConfiguration
s {$sel:tierings:IntelligentTieringConfiguration' :: [Tiering]
tierings = [Tiering]
a} :: IntelligentTieringConfiguration) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Data.FromXML IntelligentTieringConfiguration where
parseXML :: [Node] -> Either String IntelligentTieringConfiguration
parseXML [Node]
x =
Maybe IntelligentTieringFilter
-> Text
-> IntelligentTieringStatus
-> [Tiering]
-> IntelligentTieringConfiguration
IntelligentTieringConfiguration'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Filter")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"Id")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"Status")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"Tiering" [Node]
x)
instance
Prelude.Hashable
IntelligentTieringConfiguration
where
hashWithSalt :: Int -> IntelligentTieringConfiguration -> Int
hashWithSalt
Int
_salt
IntelligentTieringConfiguration' {[Tiering]
Maybe IntelligentTieringFilter
Text
IntelligentTieringStatus
tierings :: [Tiering]
status :: IntelligentTieringStatus
id :: Text
filter' :: Maybe IntelligentTieringFilter
$sel:tierings:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> [Tiering]
$sel:status:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> IntelligentTieringStatus
$sel:id:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> Text
$sel:filter':IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> Maybe IntelligentTieringFilter
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IntelligentTieringFilter
filter'
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` IntelligentTieringStatus
status
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [Tiering]
tierings
instance
Prelude.NFData
IntelligentTieringConfiguration
where
rnf :: IntelligentTieringConfiguration -> ()
rnf IntelligentTieringConfiguration' {[Tiering]
Maybe IntelligentTieringFilter
Text
IntelligentTieringStatus
tierings :: [Tiering]
status :: IntelligentTieringStatus
id :: Text
filter' :: Maybe IntelligentTieringFilter
$sel:tierings:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> [Tiering]
$sel:status:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> IntelligentTieringStatus
$sel:id:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> Text
$sel:filter':IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> Maybe IntelligentTieringFilter
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe IntelligentTieringFilter
filter'
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf IntelligentTieringStatus
status
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [Tiering]
tierings
instance Data.ToXML IntelligentTieringConfiguration where
toXML :: IntelligentTieringConfiguration -> XML
toXML IntelligentTieringConfiguration' {[Tiering]
Maybe IntelligentTieringFilter
Text
IntelligentTieringStatus
tierings :: [Tiering]
status :: IntelligentTieringStatus
id :: Text
filter' :: Maybe IntelligentTieringFilter
$sel:tierings:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> [Tiering]
$sel:status:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> IntelligentTieringStatus
$sel:id:IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> Text
$sel:filter':IntelligentTieringConfiguration' :: IntelligentTieringConfiguration -> Maybe IntelligentTieringFilter
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ Name
"Filter" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe IntelligentTieringFilter
filter',
Name
"Id" forall a. ToXML a => Name -> a -> XML
Data.@= Text
id,
Name
"Status" forall a. ToXML a => Name -> a -> XML
Data.@= IntelligentTieringStatus
status,
forall a. (IsList a, ToXML (Item a)) => Name -> a -> XML
Data.toXMLList Name
"Tiering" [Tiering]
tierings
]