{-# 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.IntelligentTieringFilter 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.IntelligentTieringAndOperator
import Amazonka.S3.Types.Tag
data IntelligentTieringFilter = IntelligentTieringFilter'
{
IntelligentTieringFilter -> Maybe IntelligentTieringAndOperator
and :: Prelude.Maybe IntelligentTieringAndOperator,
IntelligentTieringFilter -> Maybe Text
prefix :: Prelude.Maybe Prelude.Text,
IntelligentTieringFilter -> Maybe Tag
tag :: Prelude.Maybe Tag
}
deriving (IntelligentTieringFilter -> IntelligentTieringFilter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IntelligentTieringFilter -> IntelligentTieringFilter -> Bool
$c/= :: IntelligentTieringFilter -> IntelligentTieringFilter -> Bool
== :: IntelligentTieringFilter -> IntelligentTieringFilter -> Bool
$c== :: IntelligentTieringFilter -> IntelligentTieringFilter -> Bool
Prelude.Eq, ReadPrec [IntelligentTieringFilter]
ReadPrec IntelligentTieringFilter
Int -> ReadS IntelligentTieringFilter
ReadS [IntelligentTieringFilter]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [IntelligentTieringFilter]
$creadListPrec :: ReadPrec [IntelligentTieringFilter]
readPrec :: ReadPrec IntelligentTieringFilter
$creadPrec :: ReadPrec IntelligentTieringFilter
readList :: ReadS [IntelligentTieringFilter]
$creadList :: ReadS [IntelligentTieringFilter]
readsPrec :: Int -> ReadS IntelligentTieringFilter
$creadsPrec :: Int -> ReadS IntelligentTieringFilter
Prelude.Read, Int -> IntelligentTieringFilter -> ShowS
[IntelligentTieringFilter] -> ShowS
IntelligentTieringFilter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IntelligentTieringFilter] -> ShowS
$cshowList :: [IntelligentTieringFilter] -> ShowS
show :: IntelligentTieringFilter -> String
$cshow :: IntelligentTieringFilter -> String
showsPrec :: Int -> IntelligentTieringFilter -> ShowS
$cshowsPrec :: Int -> IntelligentTieringFilter -> ShowS
Prelude.Show, forall x.
Rep IntelligentTieringFilter x -> IntelligentTieringFilter
forall x.
IntelligentTieringFilter -> Rep IntelligentTieringFilter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep IntelligentTieringFilter x -> IntelligentTieringFilter
$cfrom :: forall x.
IntelligentTieringFilter -> Rep IntelligentTieringFilter x
Prelude.Generic)
newIntelligentTieringFilter ::
IntelligentTieringFilter
newIntelligentTieringFilter :: IntelligentTieringFilter
newIntelligentTieringFilter =
IntelligentTieringFilter'
{ $sel:and:IntelligentTieringFilter' :: Maybe IntelligentTieringAndOperator
and = forall a. Maybe a
Prelude.Nothing,
$sel:prefix:IntelligentTieringFilter' :: Maybe Text
prefix = forall a. Maybe a
Prelude.Nothing,
$sel:tag:IntelligentTieringFilter' :: Maybe Tag
tag = forall a. Maybe a
Prelude.Nothing
}
intelligentTieringFilter_and :: Lens.Lens' IntelligentTieringFilter (Prelude.Maybe IntelligentTieringAndOperator)
intelligentTieringFilter_and :: Lens'
IntelligentTieringFilter (Maybe IntelligentTieringAndOperator)
intelligentTieringFilter_and = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntelligentTieringFilter' {Maybe IntelligentTieringAndOperator
and :: Maybe IntelligentTieringAndOperator
$sel:and:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe IntelligentTieringAndOperator
and} -> Maybe IntelligentTieringAndOperator
and) (\s :: IntelligentTieringFilter
s@IntelligentTieringFilter' {} Maybe IntelligentTieringAndOperator
a -> IntelligentTieringFilter
s {$sel:and:IntelligentTieringFilter' :: Maybe IntelligentTieringAndOperator
and = Maybe IntelligentTieringAndOperator
a} :: IntelligentTieringFilter)
intelligentTieringFilter_prefix :: Lens.Lens' IntelligentTieringFilter (Prelude.Maybe Prelude.Text)
intelligentTieringFilter_prefix :: Lens' IntelligentTieringFilter (Maybe Text)
intelligentTieringFilter_prefix = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntelligentTieringFilter' {Maybe Text
prefix :: Maybe Text
$sel:prefix:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe Text
prefix} -> Maybe Text
prefix) (\s :: IntelligentTieringFilter
s@IntelligentTieringFilter' {} Maybe Text
a -> IntelligentTieringFilter
s {$sel:prefix:IntelligentTieringFilter' :: Maybe Text
prefix = Maybe Text
a} :: IntelligentTieringFilter)
intelligentTieringFilter_tag :: Lens.Lens' IntelligentTieringFilter (Prelude.Maybe Tag)
intelligentTieringFilter_tag :: Lens' IntelligentTieringFilter (Maybe Tag)
intelligentTieringFilter_tag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntelligentTieringFilter' {Maybe Tag
tag :: Maybe Tag
$sel:tag:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe Tag
tag} -> Maybe Tag
tag) (\s :: IntelligentTieringFilter
s@IntelligentTieringFilter' {} Maybe Tag
a -> IntelligentTieringFilter
s {$sel:tag:IntelligentTieringFilter' :: Maybe Tag
tag = Maybe Tag
a} :: IntelligentTieringFilter)
instance Data.FromXML IntelligentTieringFilter where
parseXML :: [Node] -> Either String IntelligentTieringFilter
parseXML [Node]
x =
Maybe IntelligentTieringAndOperator
-> Maybe Text -> Maybe Tag -> IntelligentTieringFilter
IntelligentTieringFilter'
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
"And")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Prefix")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Tag")
instance Prelude.Hashable IntelligentTieringFilter where
hashWithSalt :: Int -> IntelligentTieringFilter -> Int
hashWithSalt Int
_salt IntelligentTieringFilter' {Maybe Text
Maybe Tag
Maybe IntelligentTieringAndOperator
tag :: Maybe Tag
prefix :: Maybe Text
and :: Maybe IntelligentTieringAndOperator
$sel:tag:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe Tag
$sel:prefix:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe Text
$sel:and:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe IntelligentTieringAndOperator
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IntelligentTieringAndOperator
and
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
prefix
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Tag
tag
instance Prelude.NFData IntelligentTieringFilter where
rnf :: IntelligentTieringFilter -> ()
rnf IntelligentTieringFilter' {Maybe Text
Maybe Tag
Maybe IntelligentTieringAndOperator
tag :: Maybe Tag
prefix :: Maybe Text
and :: Maybe IntelligentTieringAndOperator
$sel:tag:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe Tag
$sel:prefix:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe Text
$sel:and:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe IntelligentTieringAndOperator
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe IntelligentTieringAndOperator
and
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
prefix
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Tag
tag
instance Data.ToXML IntelligentTieringFilter where
toXML :: IntelligentTieringFilter -> XML
toXML IntelligentTieringFilter' {Maybe Text
Maybe Tag
Maybe IntelligentTieringAndOperator
tag :: Maybe Tag
prefix :: Maybe Text
and :: Maybe IntelligentTieringAndOperator
$sel:tag:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe Tag
$sel:prefix:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe Text
$sel:and:IntelligentTieringFilter' :: IntelligentTieringFilter -> Maybe IntelligentTieringAndOperator
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ Name
"And" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe IntelligentTieringAndOperator
and,
Name
"Prefix" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe Text
prefix,
Name
"Tag" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe Tag
tag
]