{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.GuardDuty.GetFindingsStatistics
(
GetFindingsStatistics (..),
newGetFindingsStatistics,
getFindingsStatistics_findingCriteria,
getFindingsStatistics_detectorId,
getFindingsStatistics_findingStatisticTypes,
GetFindingsStatisticsResponse (..),
newGetFindingsStatisticsResponse,
getFindingsStatisticsResponse_httpStatus,
getFindingsStatisticsResponse_findingStatistics,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GuardDuty.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetFindingsStatistics = GetFindingsStatistics'
{
GetFindingsStatistics -> Maybe FindingCriteria
findingCriteria :: Prelude.Maybe FindingCriteria,
GetFindingsStatistics -> Text
detectorId :: Prelude.Text,
GetFindingsStatistics -> [FindingStatisticType]
findingStatisticTypes :: [FindingStatisticType]
}
deriving (GetFindingsStatistics -> GetFindingsStatistics -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetFindingsStatistics -> GetFindingsStatistics -> Bool
$c/= :: GetFindingsStatistics -> GetFindingsStatistics -> Bool
== :: GetFindingsStatistics -> GetFindingsStatistics -> Bool
$c== :: GetFindingsStatistics -> GetFindingsStatistics -> Bool
Prelude.Eq, ReadPrec [GetFindingsStatistics]
ReadPrec GetFindingsStatistics
Int -> ReadS GetFindingsStatistics
ReadS [GetFindingsStatistics]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetFindingsStatistics]
$creadListPrec :: ReadPrec [GetFindingsStatistics]
readPrec :: ReadPrec GetFindingsStatistics
$creadPrec :: ReadPrec GetFindingsStatistics
readList :: ReadS [GetFindingsStatistics]
$creadList :: ReadS [GetFindingsStatistics]
readsPrec :: Int -> ReadS GetFindingsStatistics
$creadsPrec :: Int -> ReadS GetFindingsStatistics
Prelude.Read, Int -> GetFindingsStatistics -> ShowS
[GetFindingsStatistics] -> ShowS
GetFindingsStatistics -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetFindingsStatistics] -> ShowS
$cshowList :: [GetFindingsStatistics] -> ShowS
show :: GetFindingsStatistics -> String
$cshow :: GetFindingsStatistics -> String
showsPrec :: Int -> GetFindingsStatistics -> ShowS
$cshowsPrec :: Int -> GetFindingsStatistics -> ShowS
Prelude.Show, forall x. Rep GetFindingsStatistics x -> GetFindingsStatistics
forall x. GetFindingsStatistics -> Rep GetFindingsStatistics x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetFindingsStatistics x -> GetFindingsStatistics
$cfrom :: forall x. GetFindingsStatistics -> Rep GetFindingsStatistics x
Prelude.Generic)
newGetFindingsStatistics ::
Prelude.Text ->
GetFindingsStatistics
newGetFindingsStatistics :: Text -> GetFindingsStatistics
newGetFindingsStatistics Text
pDetectorId_ =
GetFindingsStatistics'
{ $sel:findingCriteria:GetFindingsStatistics' :: Maybe FindingCriteria
findingCriteria =
forall a. Maybe a
Prelude.Nothing,
$sel:detectorId:GetFindingsStatistics' :: Text
detectorId = Text
pDetectorId_,
$sel:findingStatisticTypes:GetFindingsStatistics' :: [FindingStatisticType]
findingStatisticTypes = forall a. Monoid a => a
Prelude.mempty
}
getFindingsStatistics_findingCriteria :: Lens.Lens' GetFindingsStatistics (Prelude.Maybe FindingCriteria)
getFindingsStatistics_findingCriteria :: Lens' GetFindingsStatistics (Maybe FindingCriteria)
getFindingsStatistics_findingCriteria = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetFindingsStatistics' {Maybe FindingCriteria
findingCriteria :: Maybe FindingCriteria
$sel:findingCriteria:GetFindingsStatistics' :: GetFindingsStatistics -> Maybe FindingCriteria
findingCriteria} -> Maybe FindingCriteria
findingCriteria) (\s :: GetFindingsStatistics
s@GetFindingsStatistics' {} Maybe FindingCriteria
a -> GetFindingsStatistics
s {$sel:findingCriteria:GetFindingsStatistics' :: Maybe FindingCriteria
findingCriteria = Maybe FindingCriteria
a} :: GetFindingsStatistics)
getFindingsStatistics_detectorId :: Lens.Lens' GetFindingsStatistics Prelude.Text
getFindingsStatistics_detectorId :: Lens' GetFindingsStatistics Text
getFindingsStatistics_detectorId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetFindingsStatistics' {Text
detectorId :: Text
$sel:detectorId:GetFindingsStatistics' :: GetFindingsStatistics -> Text
detectorId} -> Text
detectorId) (\s :: GetFindingsStatistics
s@GetFindingsStatistics' {} Text
a -> GetFindingsStatistics
s {$sel:detectorId:GetFindingsStatistics' :: Text
detectorId = Text
a} :: GetFindingsStatistics)
getFindingsStatistics_findingStatisticTypes :: Lens.Lens' GetFindingsStatistics [FindingStatisticType]
getFindingsStatistics_findingStatisticTypes :: Lens' GetFindingsStatistics [FindingStatisticType]
getFindingsStatistics_findingStatisticTypes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetFindingsStatistics' {[FindingStatisticType]
findingStatisticTypes :: [FindingStatisticType]
$sel:findingStatisticTypes:GetFindingsStatistics' :: GetFindingsStatistics -> [FindingStatisticType]
findingStatisticTypes} -> [FindingStatisticType]
findingStatisticTypes) (\s :: GetFindingsStatistics
s@GetFindingsStatistics' {} [FindingStatisticType]
a -> GetFindingsStatistics
s {$sel:findingStatisticTypes:GetFindingsStatistics' :: [FindingStatisticType]
findingStatisticTypes = [FindingStatisticType]
a} :: GetFindingsStatistics) 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 Core.AWSRequest GetFindingsStatistics where
type
AWSResponse GetFindingsStatistics =
GetFindingsStatisticsResponse
request :: (Service -> Service)
-> GetFindingsStatistics -> Request GetFindingsStatistics
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetFindingsStatistics
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse GetFindingsStatistics)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Int -> FindingStatistics -> GetFindingsStatisticsResponse
GetFindingsStatisticsResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"findingStatistics")
)
instance Prelude.Hashable GetFindingsStatistics where
hashWithSalt :: Int -> GetFindingsStatistics -> Int
hashWithSalt Int
_salt GetFindingsStatistics' {[FindingStatisticType]
Maybe FindingCriteria
Text
findingStatisticTypes :: [FindingStatisticType]
detectorId :: Text
findingCriteria :: Maybe FindingCriteria
$sel:findingStatisticTypes:GetFindingsStatistics' :: GetFindingsStatistics -> [FindingStatisticType]
$sel:detectorId:GetFindingsStatistics' :: GetFindingsStatistics -> Text
$sel:findingCriteria:GetFindingsStatistics' :: GetFindingsStatistics -> Maybe FindingCriteria
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FindingCriteria
findingCriteria
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
detectorId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [FindingStatisticType]
findingStatisticTypes
instance Prelude.NFData GetFindingsStatistics where
rnf :: GetFindingsStatistics -> ()
rnf GetFindingsStatistics' {[FindingStatisticType]
Maybe FindingCriteria
Text
findingStatisticTypes :: [FindingStatisticType]
detectorId :: Text
findingCriteria :: Maybe FindingCriteria
$sel:findingStatisticTypes:GetFindingsStatistics' :: GetFindingsStatistics -> [FindingStatisticType]
$sel:detectorId:GetFindingsStatistics' :: GetFindingsStatistics -> Text
$sel:findingCriteria:GetFindingsStatistics' :: GetFindingsStatistics -> Maybe FindingCriteria
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe FindingCriteria
findingCriteria
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
detectorId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [FindingStatisticType]
findingStatisticTypes
instance Data.ToHeaders GetFindingsStatistics where
toHeaders :: GetFindingsStatistics -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetFindingsStatistics where
toJSON :: GetFindingsStatistics -> Value
toJSON GetFindingsStatistics' {[FindingStatisticType]
Maybe FindingCriteria
Text
findingStatisticTypes :: [FindingStatisticType]
detectorId :: Text
findingCriteria :: Maybe FindingCriteria
$sel:findingStatisticTypes:GetFindingsStatistics' :: GetFindingsStatistics -> [FindingStatisticType]
$sel:detectorId:GetFindingsStatistics' :: GetFindingsStatistics -> Text
$sel:findingCriteria:GetFindingsStatistics' :: GetFindingsStatistics -> Maybe FindingCriteria
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"findingCriteria" 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 FindingCriteria
findingCriteria,
forall a. a -> Maybe a
Prelude.Just
( Key
"findingStatisticTypes"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= [FindingStatisticType]
findingStatisticTypes
)
]
)
instance Data.ToPath GetFindingsStatistics where
toPath :: GetFindingsStatistics -> ByteString
toPath GetFindingsStatistics' {[FindingStatisticType]
Maybe FindingCriteria
Text
findingStatisticTypes :: [FindingStatisticType]
detectorId :: Text
findingCriteria :: Maybe FindingCriteria
$sel:findingStatisticTypes:GetFindingsStatistics' :: GetFindingsStatistics -> [FindingStatisticType]
$sel:detectorId:GetFindingsStatistics' :: GetFindingsStatistics -> Text
$sel:findingCriteria:GetFindingsStatistics' :: GetFindingsStatistics -> Maybe FindingCriteria
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/detector/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
detectorId,
ByteString
"/findings/statistics"
]
instance Data.ToQuery GetFindingsStatistics where
toQuery :: GetFindingsStatistics -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetFindingsStatisticsResponse = GetFindingsStatisticsResponse'
{
GetFindingsStatisticsResponse -> Int
httpStatus :: Prelude.Int,
GetFindingsStatisticsResponse -> FindingStatistics
findingStatistics :: FindingStatistics
}
deriving (GetFindingsStatisticsResponse
-> GetFindingsStatisticsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetFindingsStatisticsResponse
-> GetFindingsStatisticsResponse -> Bool
$c/= :: GetFindingsStatisticsResponse
-> GetFindingsStatisticsResponse -> Bool
== :: GetFindingsStatisticsResponse
-> GetFindingsStatisticsResponse -> Bool
$c== :: GetFindingsStatisticsResponse
-> GetFindingsStatisticsResponse -> Bool
Prelude.Eq, ReadPrec [GetFindingsStatisticsResponse]
ReadPrec GetFindingsStatisticsResponse
Int -> ReadS GetFindingsStatisticsResponse
ReadS [GetFindingsStatisticsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetFindingsStatisticsResponse]
$creadListPrec :: ReadPrec [GetFindingsStatisticsResponse]
readPrec :: ReadPrec GetFindingsStatisticsResponse
$creadPrec :: ReadPrec GetFindingsStatisticsResponse
readList :: ReadS [GetFindingsStatisticsResponse]
$creadList :: ReadS [GetFindingsStatisticsResponse]
readsPrec :: Int -> ReadS GetFindingsStatisticsResponse
$creadsPrec :: Int -> ReadS GetFindingsStatisticsResponse
Prelude.Read, Int -> GetFindingsStatisticsResponse -> ShowS
[GetFindingsStatisticsResponse] -> ShowS
GetFindingsStatisticsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetFindingsStatisticsResponse] -> ShowS
$cshowList :: [GetFindingsStatisticsResponse] -> ShowS
show :: GetFindingsStatisticsResponse -> String
$cshow :: GetFindingsStatisticsResponse -> String
showsPrec :: Int -> GetFindingsStatisticsResponse -> ShowS
$cshowsPrec :: Int -> GetFindingsStatisticsResponse -> ShowS
Prelude.Show, forall x.
Rep GetFindingsStatisticsResponse x
-> GetFindingsStatisticsResponse
forall x.
GetFindingsStatisticsResponse
-> Rep GetFindingsStatisticsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetFindingsStatisticsResponse x
-> GetFindingsStatisticsResponse
$cfrom :: forall x.
GetFindingsStatisticsResponse
-> Rep GetFindingsStatisticsResponse x
Prelude.Generic)
newGetFindingsStatisticsResponse ::
Prelude.Int ->
FindingStatistics ->
GetFindingsStatisticsResponse
newGetFindingsStatisticsResponse :: Int -> FindingStatistics -> GetFindingsStatisticsResponse
newGetFindingsStatisticsResponse
Int
pHttpStatus_
FindingStatistics
pFindingStatistics_ =
GetFindingsStatisticsResponse'
{ $sel:httpStatus:GetFindingsStatisticsResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:findingStatistics:GetFindingsStatisticsResponse' :: FindingStatistics
findingStatistics = FindingStatistics
pFindingStatistics_
}
getFindingsStatisticsResponse_httpStatus :: Lens.Lens' GetFindingsStatisticsResponse Prelude.Int
getFindingsStatisticsResponse_httpStatus :: Lens' GetFindingsStatisticsResponse Int
getFindingsStatisticsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetFindingsStatisticsResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetFindingsStatisticsResponse' :: GetFindingsStatisticsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetFindingsStatisticsResponse
s@GetFindingsStatisticsResponse' {} Int
a -> GetFindingsStatisticsResponse
s {$sel:httpStatus:GetFindingsStatisticsResponse' :: Int
httpStatus = Int
a} :: GetFindingsStatisticsResponse)
getFindingsStatisticsResponse_findingStatistics :: Lens.Lens' GetFindingsStatisticsResponse FindingStatistics
getFindingsStatisticsResponse_findingStatistics :: Lens' GetFindingsStatisticsResponse FindingStatistics
getFindingsStatisticsResponse_findingStatistics = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetFindingsStatisticsResponse' {FindingStatistics
findingStatistics :: FindingStatistics
$sel:findingStatistics:GetFindingsStatisticsResponse' :: GetFindingsStatisticsResponse -> FindingStatistics
findingStatistics} -> FindingStatistics
findingStatistics) (\s :: GetFindingsStatisticsResponse
s@GetFindingsStatisticsResponse' {} FindingStatistics
a -> GetFindingsStatisticsResponse
s {$sel:findingStatistics:GetFindingsStatisticsResponse' :: FindingStatistics
findingStatistics = FindingStatistics
a} :: GetFindingsStatisticsResponse)
instance Prelude.NFData GetFindingsStatisticsResponse where
rnf :: GetFindingsStatisticsResponse -> ()
rnf GetFindingsStatisticsResponse' {Int
FindingStatistics
findingStatistics :: FindingStatistics
httpStatus :: Int
$sel:findingStatistics:GetFindingsStatisticsResponse' :: GetFindingsStatisticsResponse -> FindingStatistics
$sel:httpStatus:GetFindingsStatisticsResponse' :: GetFindingsStatisticsResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf FindingStatistics
findingStatistics