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