{-# 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.Inspector.Types.AssessmentRunFilter where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Inspector.Types.AssessmentRunState
import Amazonka.Inspector.Types.DurationRange
import Amazonka.Inspector.Types.TimestampRange
import qualified Amazonka.Prelude as Prelude
data AssessmentRunFilter = AssessmentRunFilter'
{
AssessmentRunFilter -> Maybe TimestampRange
completionTimeRange :: Prelude.Maybe TimestampRange,
AssessmentRunFilter -> Maybe DurationRange
durationRange :: Prelude.Maybe DurationRange,
AssessmentRunFilter -> Maybe Text
namePattern :: Prelude.Maybe Prelude.Text,
AssessmentRunFilter -> Maybe [Text]
rulesPackageArns :: Prelude.Maybe [Prelude.Text],
AssessmentRunFilter -> Maybe TimestampRange
startTimeRange :: Prelude.Maybe TimestampRange,
AssessmentRunFilter -> Maybe TimestampRange
stateChangeTimeRange :: Prelude.Maybe TimestampRange,
AssessmentRunFilter -> Maybe [AssessmentRunState]
states :: Prelude.Maybe [AssessmentRunState]
}
deriving (AssessmentRunFilter -> AssessmentRunFilter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssessmentRunFilter -> AssessmentRunFilter -> Bool
$c/= :: AssessmentRunFilter -> AssessmentRunFilter -> Bool
== :: AssessmentRunFilter -> AssessmentRunFilter -> Bool
$c== :: AssessmentRunFilter -> AssessmentRunFilter -> Bool
Prelude.Eq, ReadPrec [AssessmentRunFilter]
ReadPrec AssessmentRunFilter
Int -> ReadS AssessmentRunFilter
ReadS [AssessmentRunFilter]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AssessmentRunFilter]
$creadListPrec :: ReadPrec [AssessmentRunFilter]
readPrec :: ReadPrec AssessmentRunFilter
$creadPrec :: ReadPrec AssessmentRunFilter
readList :: ReadS [AssessmentRunFilter]
$creadList :: ReadS [AssessmentRunFilter]
readsPrec :: Int -> ReadS AssessmentRunFilter
$creadsPrec :: Int -> ReadS AssessmentRunFilter
Prelude.Read, Int -> AssessmentRunFilter -> ShowS
[AssessmentRunFilter] -> ShowS
AssessmentRunFilter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssessmentRunFilter] -> ShowS
$cshowList :: [AssessmentRunFilter] -> ShowS
show :: AssessmentRunFilter -> String
$cshow :: AssessmentRunFilter -> String
showsPrec :: Int -> AssessmentRunFilter -> ShowS
$cshowsPrec :: Int -> AssessmentRunFilter -> ShowS
Prelude.Show, forall x. Rep AssessmentRunFilter x -> AssessmentRunFilter
forall x. AssessmentRunFilter -> Rep AssessmentRunFilter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AssessmentRunFilter x -> AssessmentRunFilter
$cfrom :: forall x. AssessmentRunFilter -> Rep AssessmentRunFilter x
Prelude.Generic)
newAssessmentRunFilter ::
AssessmentRunFilter
newAssessmentRunFilter :: AssessmentRunFilter
newAssessmentRunFilter =
AssessmentRunFilter'
{ $sel:completionTimeRange:AssessmentRunFilter' :: Maybe TimestampRange
completionTimeRange =
forall a. Maybe a
Prelude.Nothing,
$sel:durationRange:AssessmentRunFilter' :: Maybe DurationRange
durationRange = forall a. Maybe a
Prelude.Nothing,
$sel:namePattern:AssessmentRunFilter' :: Maybe Text
namePattern = forall a. Maybe a
Prelude.Nothing,
$sel:rulesPackageArns:AssessmentRunFilter' :: Maybe [Text]
rulesPackageArns = forall a. Maybe a
Prelude.Nothing,
$sel:startTimeRange:AssessmentRunFilter' :: Maybe TimestampRange
startTimeRange = forall a. Maybe a
Prelude.Nothing,
$sel:stateChangeTimeRange:AssessmentRunFilter' :: Maybe TimestampRange
stateChangeTimeRange = forall a. Maybe a
Prelude.Nothing,
$sel:states:AssessmentRunFilter' :: Maybe [AssessmentRunState]
states = forall a. Maybe a
Prelude.Nothing
}
assessmentRunFilter_completionTimeRange :: Lens.Lens' AssessmentRunFilter (Prelude.Maybe TimestampRange)
assessmentRunFilter_completionTimeRange :: Lens' AssessmentRunFilter (Maybe TimestampRange)
assessmentRunFilter_completionTimeRange = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentRunFilter' {Maybe TimestampRange
completionTimeRange :: Maybe TimestampRange
$sel:completionTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
completionTimeRange} -> Maybe TimestampRange
completionTimeRange) (\s :: AssessmentRunFilter
s@AssessmentRunFilter' {} Maybe TimestampRange
a -> AssessmentRunFilter
s {$sel:completionTimeRange:AssessmentRunFilter' :: Maybe TimestampRange
completionTimeRange = Maybe TimestampRange
a} :: AssessmentRunFilter)
assessmentRunFilter_durationRange :: Lens.Lens' AssessmentRunFilter (Prelude.Maybe DurationRange)
assessmentRunFilter_durationRange :: Lens' AssessmentRunFilter (Maybe DurationRange)
assessmentRunFilter_durationRange = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentRunFilter' {Maybe DurationRange
durationRange :: Maybe DurationRange
$sel:durationRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe DurationRange
durationRange} -> Maybe DurationRange
durationRange) (\s :: AssessmentRunFilter
s@AssessmentRunFilter' {} Maybe DurationRange
a -> AssessmentRunFilter
s {$sel:durationRange:AssessmentRunFilter' :: Maybe DurationRange
durationRange = Maybe DurationRange
a} :: AssessmentRunFilter)
assessmentRunFilter_namePattern :: Lens.Lens' AssessmentRunFilter (Prelude.Maybe Prelude.Text)
assessmentRunFilter_namePattern :: Lens' AssessmentRunFilter (Maybe Text)
assessmentRunFilter_namePattern = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentRunFilter' {Maybe Text
namePattern :: Maybe Text
$sel:namePattern:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe Text
namePattern} -> Maybe Text
namePattern) (\s :: AssessmentRunFilter
s@AssessmentRunFilter' {} Maybe Text
a -> AssessmentRunFilter
s {$sel:namePattern:AssessmentRunFilter' :: Maybe Text
namePattern = Maybe Text
a} :: AssessmentRunFilter)
assessmentRunFilter_rulesPackageArns :: Lens.Lens' AssessmentRunFilter (Prelude.Maybe [Prelude.Text])
assessmentRunFilter_rulesPackageArns :: Lens' AssessmentRunFilter (Maybe [Text])
assessmentRunFilter_rulesPackageArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentRunFilter' {Maybe [Text]
rulesPackageArns :: Maybe [Text]
$sel:rulesPackageArns:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe [Text]
rulesPackageArns} -> Maybe [Text]
rulesPackageArns) (\s :: AssessmentRunFilter
s@AssessmentRunFilter' {} Maybe [Text]
a -> AssessmentRunFilter
s {$sel:rulesPackageArns:AssessmentRunFilter' :: Maybe [Text]
rulesPackageArns = Maybe [Text]
a} :: AssessmentRunFilter) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
assessmentRunFilter_startTimeRange :: Lens.Lens' AssessmentRunFilter (Prelude.Maybe TimestampRange)
assessmentRunFilter_startTimeRange :: Lens' AssessmentRunFilter (Maybe TimestampRange)
assessmentRunFilter_startTimeRange = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentRunFilter' {Maybe TimestampRange
startTimeRange :: Maybe TimestampRange
$sel:startTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
startTimeRange} -> Maybe TimestampRange
startTimeRange) (\s :: AssessmentRunFilter
s@AssessmentRunFilter' {} Maybe TimestampRange
a -> AssessmentRunFilter
s {$sel:startTimeRange:AssessmentRunFilter' :: Maybe TimestampRange
startTimeRange = Maybe TimestampRange
a} :: AssessmentRunFilter)
assessmentRunFilter_stateChangeTimeRange :: Lens.Lens' AssessmentRunFilter (Prelude.Maybe TimestampRange)
assessmentRunFilter_stateChangeTimeRange :: Lens' AssessmentRunFilter (Maybe TimestampRange)
assessmentRunFilter_stateChangeTimeRange = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentRunFilter' {Maybe TimestampRange
stateChangeTimeRange :: Maybe TimestampRange
$sel:stateChangeTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
stateChangeTimeRange} -> Maybe TimestampRange
stateChangeTimeRange) (\s :: AssessmentRunFilter
s@AssessmentRunFilter' {} Maybe TimestampRange
a -> AssessmentRunFilter
s {$sel:stateChangeTimeRange:AssessmentRunFilter' :: Maybe TimestampRange
stateChangeTimeRange = Maybe TimestampRange
a} :: AssessmentRunFilter)
assessmentRunFilter_states :: Lens.Lens' AssessmentRunFilter (Prelude.Maybe [AssessmentRunState])
assessmentRunFilter_states :: Lens' AssessmentRunFilter (Maybe [AssessmentRunState])
assessmentRunFilter_states = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssessmentRunFilter' {Maybe [AssessmentRunState]
states :: Maybe [AssessmentRunState]
$sel:states:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe [AssessmentRunState]
states} -> Maybe [AssessmentRunState]
states) (\s :: AssessmentRunFilter
s@AssessmentRunFilter' {} Maybe [AssessmentRunState]
a -> AssessmentRunFilter
s {$sel:states:AssessmentRunFilter' :: Maybe [AssessmentRunState]
states = Maybe [AssessmentRunState]
a} :: AssessmentRunFilter) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Prelude.Hashable AssessmentRunFilter where
hashWithSalt :: Int -> AssessmentRunFilter -> Int
hashWithSalt Int
_salt AssessmentRunFilter' {Maybe [Text]
Maybe [AssessmentRunState]
Maybe Text
Maybe DurationRange
Maybe TimestampRange
states :: Maybe [AssessmentRunState]
stateChangeTimeRange :: Maybe TimestampRange
startTimeRange :: Maybe TimestampRange
rulesPackageArns :: Maybe [Text]
namePattern :: Maybe Text
durationRange :: Maybe DurationRange
completionTimeRange :: Maybe TimestampRange
$sel:states:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe [AssessmentRunState]
$sel:stateChangeTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
$sel:startTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
$sel:rulesPackageArns:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe [Text]
$sel:namePattern:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe Text
$sel:durationRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe DurationRange
$sel:completionTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TimestampRange
completionTimeRange
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DurationRange
durationRange
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
namePattern
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
rulesPackageArns
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TimestampRange
startTimeRange
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TimestampRange
stateChangeTimeRange
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [AssessmentRunState]
states
instance Prelude.NFData AssessmentRunFilter where
rnf :: AssessmentRunFilter -> ()
rnf AssessmentRunFilter' {Maybe [Text]
Maybe [AssessmentRunState]
Maybe Text
Maybe DurationRange
Maybe TimestampRange
states :: Maybe [AssessmentRunState]
stateChangeTimeRange :: Maybe TimestampRange
startTimeRange :: Maybe TimestampRange
rulesPackageArns :: Maybe [Text]
namePattern :: Maybe Text
durationRange :: Maybe DurationRange
completionTimeRange :: Maybe TimestampRange
$sel:states:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe [AssessmentRunState]
$sel:stateChangeTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
$sel:startTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
$sel:rulesPackageArns:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe [Text]
$sel:namePattern:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe Text
$sel:durationRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe DurationRange
$sel:completionTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe TimestampRange
completionTimeRange
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DurationRange
durationRange
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
namePattern
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
rulesPackageArns
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TimestampRange
startTimeRange
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TimestampRange
stateChangeTimeRange
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [AssessmentRunState]
states
instance Data.ToJSON AssessmentRunFilter where
toJSON :: AssessmentRunFilter -> Value
toJSON AssessmentRunFilter' {Maybe [Text]
Maybe [AssessmentRunState]
Maybe Text
Maybe DurationRange
Maybe TimestampRange
states :: Maybe [AssessmentRunState]
stateChangeTimeRange :: Maybe TimestampRange
startTimeRange :: Maybe TimestampRange
rulesPackageArns :: Maybe [Text]
namePattern :: Maybe Text
durationRange :: Maybe DurationRange
completionTimeRange :: Maybe TimestampRange
$sel:states:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe [AssessmentRunState]
$sel:stateChangeTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
$sel:startTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
$sel:rulesPackageArns:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe [Text]
$sel:namePattern:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe Text
$sel:durationRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe DurationRange
$sel:completionTimeRange:AssessmentRunFilter' :: AssessmentRunFilter -> Maybe TimestampRange
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"completionTimeRange" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TimestampRange
completionTimeRange,
(Key
"durationRange" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DurationRange
durationRange,
(Key
"namePattern" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
namePattern,
(Key
"rulesPackageArns" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
rulesPackageArns,
(Key
"startTimeRange" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TimestampRange
startTimeRange,
(Key
"stateChangeTimeRange" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TimestampRange
stateChangeTimeRange,
(Key
"states" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AssessmentRunState]
states
]
)