{-# 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.GuardDuty.Types.AwsApiCallAction 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.DomainDetails
import Amazonka.GuardDuty.Types.RemoteAccountDetails
import Amazonka.GuardDuty.Types.RemoteIpDetails
import qualified Amazonka.Prelude as Prelude
data AwsApiCallAction = AwsApiCallAction'
{
AwsApiCallAction -> Maybe (HashMap Text Text)
affectedResources :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
AwsApiCallAction -> Maybe Text
api :: Prelude.Maybe Prelude.Text,
AwsApiCallAction -> Maybe Text
callerType :: Prelude.Maybe Prelude.Text,
AwsApiCallAction -> Maybe DomainDetails
domainDetails :: Prelude.Maybe DomainDetails,
AwsApiCallAction -> Maybe Text
errorCode :: Prelude.Maybe Prelude.Text,
AwsApiCallAction -> Maybe RemoteAccountDetails
remoteAccountDetails :: Prelude.Maybe RemoteAccountDetails,
AwsApiCallAction -> Maybe RemoteIpDetails
remoteIpDetails :: Prelude.Maybe RemoteIpDetails,
AwsApiCallAction -> Maybe Text
serviceName :: Prelude.Maybe Prelude.Text,
AwsApiCallAction -> Maybe Text
userAgent :: Prelude.Maybe Prelude.Text
}
deriving (AwsApiCallAction -> AwsApiCallAction -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AwsApiCallAction -> AwsApiCallAction -> Bool
$c/= :: AwsApiCallAction -> AwsApiCallAction -> Bool
== :: AwsApiCallAction -> AwsApiCallAction -> Bool
$c== :: AwsApiCallAction -> AwsApiCallAction -> Bool
Prelude.Eq, ReadPrec [AwsApiCallAction]
ReadPrec AwsApiCallAction
Int -> ReadS AwsApiCallAction
ReadS [AwsApiCallAction]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AwsApiCallAction]
$creadListPrec :: ReadPrec [AwsApiCallAction]
readPrec :: ReadPrec AwsApiCallAction
$creadPrec :: ReadPrec AwsApiCallAction
readList :: ReadS [AwsApiCallAction]
$creadList :: ReadS [AwsApiCallAction]
readsPrec :: Int -> ReadS AwsApiCallAction
$creadsPrec :: Int -> ReadS AwsApiCallAction
Prelude.Read, Int -> AwsApiCallAction -> ShowS
[AwsApiCallAction] -> ShowS
AwsApiCallAction -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AwsApiCallAction] -> ShowS
$cshowList :: [AwsApiCallAction] -> ShowS
show :: AwsApiCallAction -> String
$cshow :: AwsApiCallAction -> String
showsPrec :: Int -> AwsApiCallAction -> ShowS
$cshowsPrec :: Int -> AwsApiCallAction -> ShowS
Prelude.Show, forall x. Rep AwsApiCallAction x -> AwsApiCallAction
forall x. AwsApiCallAction -> Rep AwsApiCallAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AwsApiCallAction x -> AwsApiCallAction
$cfrom :: forall x. AwsApiCallAction -> Rep AwsApiCallAction x
Prelude.Generic)
newAwsApiCallAction ::
AwsApiCallAction
newAwsApiCallAction :: AwsApiCallAction
newAwsApiCallAction =
AwsApiCallAction'
{ $sel:affectedResources:AwsApiCallAction' :: Maybe (HashMap Text Text)
affectedResources =
forall a. Maybe a
Prelude.Nothing,
$sel:api:AwsApiCallAction' :: Maybe Text
api = forall a. Maybe a
Prelude.Nothing,
$sel:callerType:AwsApiCallAction' :: Maybe Text
callerType = forall a. Maybe a
Prelude.Nothing,
$sel:domainDetails:AwsApiCallAction' :: Maybe DomainDetails
domainDetails = forall a. Maybe a
Prelude.Nothing,
$sel:errorCode:AwsApiCallAction' :: Maybe Text
errorCode = forall a. Maybe a
Prelude.Nothing,
$sel:remoteAccountDetails:AwsApiCallAction' :: Maybe RemoteAccountDetails
remoteAccountDetails = forall a. Maybe a
Prelude.Nothing,
$sel:remoteIpDetails:AwsApiCallAction' :: Maybe RemoteIpDetails
remoteIpDetails = forall a. Maybe a
Prelude.Nothing,
$sel:serviceName:AwsApiCallAction' :: Maybe Text
serviceName = forall a. Maybe a
Prelude.Nothing,
$sel:userAgent:AwsApiCallAction' :: Maybe Text
userAgent = forall a. Maybe a
Prelude.Nothing
}
awsApiCallAction_affectedResources :: Lens.Lens' AwsApiCallAction (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
awsApiCallAction_affectedResources :: Lens' AwsApiCallAction (Maybe (HashMap Text Text))
awsApiCallAction_affectedResources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsApiCallAction' {Maybe (HashMap Text Text)
affectedResources :: Maybe (HashMap Text Text)
$sel:affectedResources:AwsApiCallAction' :: AwsApiCallAction -> Maybe (HashMap Text Text)
affectedResources} -> Maybe (HashMap Text Text)
affectedResources) (\s :: AwsApiCallAction
s@AwsApiCallAction' {} Maybe (HashMap Text Text)
a -> AwsApiCallAction
s {$sel:affectedResources:AwsApiCallAction' :: Maybe (HashMap Text Text)
affectedResources = Maybe (HashMap Text Text)
a} :: AwsApiCallAction) 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
awsApiCallAction_api :: Lens.Lens' AwsApiCallAction (Prelude.Maybe Prelude.Text)
awsApiCallAction_api :: Lens' AwsApiCallAction (Maybe Text)
awsApiCallAction_api = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsApiCallAction' {Maybe Text
api :: Maybe Text
$sel:api:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
api} -> Maybe Text
api) (\s :: AwsApiCallAction
s@AwsApiCallAction' {} Maybe Text
a -> AwsApiCallAction
s {$sel:api:AwsApiCallAction' :: Maybe Text
api = Maybe Text
a} :: AwsApiCallAction)
awsApiCallAction_callerType :: Lens.Lens' AwsApiCallAction (Prelude.Maybe Prelude.Text)
awsApiCallAction_callerType :: Lens' AwsApiCallAction (Maybe Text)
awsApiCallAction_callerType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsApiCallAction' {Maybe Text
callerType :: Maybe Text
$sel:callerType:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
callerType} -> Maybe Text
callerType) (\s :: AwsApiCallAction
s@AwsApiCallAction' {} Maybe Text
a -> AwsApiCallAction
s {$sel:callerType:AwsApiCallAction' :: Maybe Text
callerType = Maybe Text
a} :: AwsApiCallAction)
awsApiCallAction_domainDetails :: Lens.Lens' AwsApiCallAction (Prelude.Maybe DomainDetails)
awsApiCallAction_domainDetails :: Lens' AwsApiCallAction (Maybe DomainDetails)
awsApiCallAction_domainDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsApiCallAction' {Maybe DomainDetails
domainDetails :: Maybe DomainDetails
$sel:domainDetails:AwsApiCallAction' :: AwsApiCallAction -> Maybe DomainDetails
domainDetails} -> Maybe DomainDetails
domainDetails) (\s :: AwsApiCallAction
s@AwsApiCallAction' {} Maybe DomainDetails
a -> AwsApiCallAction
s {$sel:domainDetails:AwsApiCallAction' :: Maybe DomainDetails
domainDetails = Maybe DomainDetails
a} :: AwsApiCallAction)
awsApiCallAction_errorCode :: Lens.Lens' AwsApiCallAction (Prelude.Maybe Prelude.Text)
awsApiCallAction_errorCode :: Lens' AwsApiCallAction (Maybe Text)
awsApiCallAction_errorCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsApiCallAction' {Maybe Text
errorCode :: Maybe Text
$sel:errorCode:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
errorCode} -> Maybe Text
errorCode) (\s :: AwsApiCallAction
s@AwsApiCallAction' {} Maybe Text
a -> AwsApiCallAction
s {$sel:errorCode:AwsApiCallAction' :: Maybe Text
errorCode = Maybe Text
a} :: AwsApiCallAction)
awsApiCallAction_remoteAccountDetails :: Lens.Lens' AwsApiCallAction (Prelude.Maybe RemoteAccountDetails)
awsApiCallAction_remoteAccountDetails :: Lens' AwsApiCallAction (Maybe RemoteAccountDetails)
awsApiCallAction_remoteAccountDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsApiCallAction' {Maybe RemoteAccountDetails
remoteAccountDetails :: Maybe RemoteAccountDetails
$sel:remoteAccountDetails:AwsApiCallAction' :: AwsApiCallAction -> Maybe RemoteAccountDetails
remoteAccountDetails} -> Maybe RemoteAccountDetails
remoteAccountDetails) (\s :: AwsApiCallAction
s@AwsApiCallAction' {} Maybe RemoteAccountDetails
a -> AwsApiCallAction
s {$sel:remoteAccountDetails:AwsApiCallAction' :: Maybe RemoteAccountDetails
remoteAccountDetails = Maybe RemoteAccountDetails
a} :: AwsApiCallAction)
awsApiCallAction_remoteIpDetails :: Lens.Lens' AwsApiCallAction (Prelude.Maybe RemoteIpDetails)
awsApiCallAction_remoteIpDetails :: Lens' AwsApiCallAction (Maybe RemoteIpDetails)
awsApiCallAction_remoteIpDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsApiCallAction' {Maybe RemoteIpDetails
remoteIpDetails :: Maybe RemoteIpDetails
$sel:remoteIpDetails:AwsApiCallAction' :: AwsApiCallAction -> Maybe RemoteIpDetails
remoteIpDetails} -> Maybe RemoteIpDetails
remoteIpDetails) (\s :: AwsApiCallAction
s@AwsApiCallAction' {} Maybe RemoteIpDetails
a -> AwsApiCallAction
s {$sel:remoteIpDetails:AwsApiCallAction' :: Maybe RemoteIpDetails
remoteIpDetails = Maybe RemoteIpDetails
a} :: AwsApiCallAction)
awsApiCallAction_serviceName :: Lens.Lens' AwsApiCallAction (Prelude.Maybe Prelude.Text)
awsApiCallAction_serviceName :: Lens' AwsApiCallAction (Maybe Text)
awsApiCallAction_serviceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsApiCallAction' {Maybe Text
serviceName :: Maybe Text
$sel:serviceName:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
serviceName} -> Maybe Text
serviceName) (\s :: AwsApiCallAction
s@AwsApiCallAction' {} Maybe Text
a -> AwsApiCallAction
s {$sel:serviceName:AwsApiCallAction' :: Maybe Text
serviceName = Maybe Text
a} :: AwsApiCallAction)
awsApiCallAction_userAgent :: Lens.Lens' AwsApiCallAction (Prelude.Maybe Prelude.Text)
awsApiCallAction_userAgent :: Lens' AwsApiCallAction (Maybe Text)
awsApiCallAction_userAgent = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsApiCallAction' {Maybe Text
userAgent :: Maybe Text
$sel:userAgent:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
userAgent} -> Maybe Text
userAgent) (\s :: AwsApiCallAction
s@AwsApiCallAction' {} Maybe Text
a -> AwsApiCallAction
s {$sel:userAgent:AwsApiCallAction' :: Maybe Text
userAgent = Maybe Text
a} :: AwsApiCallAction)
instance Data.FromJSON AwsApiCallAction where
parseJSON :: Value -> Parser AwsApiCallAction
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"AwsApiCallAction"
( \Object
x ->
Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe Text
-> Maybe DomainDetails
-> Maybe Text
-> Maybe RemoteAccountDetails
-> Maybe RemoteIpDetails
-> Maybe Text
-> Maybe Text
-> AwsApiCallAction
AwsApiCallAction'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"affectedResources"
forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"api")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"callerType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"domainDetails")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"errorCode")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"remoteAccountDetails")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"remoteIpDetails")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"serviceName")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"userAgent")
)
instance Prelude.Hashable AwsApiCallAction where
hashWithSalt :: Int -> AwsApiCallAction -> Int
hashWithSalt Int
_salt AwsApiCallAction' {Maybe Text
Maybe (HashMap Text Text)
Maybe DomainDetails
Maybe RemoteAccountDetails
Maybe RemoteIpDetails
userAgent :: Maybe Text
serviceName :: Maybe Text
remoteIpDetails :: Maybe RemoteIpDetails
remoteAccountDetails :: Maybe RemoteAccountDetails
errorCode :: Maybe Text
domainDetails :: Maybe DomainDetails
callerType :: Maybe Text
api :: Maybe Text
affectedResources :: Maybe (HashMap Text Text)
$sel:userAgent:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
$sel:serviceName:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
$sel:remoteIpDetails:AwsApiCallAction' :: AwsApiCallAction -> Maybe RemoteIpDetails
$sel:remoteAccountDetails:AwsApiCallAction' :: AwsApiCallAction -> Maybe RemoteAccountDetails
$sel:errorCode:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
$sel:domainDetails:AwsApiCallAction' :: AwsApiCallAction -> Maybe DomainDetails
$sel:callerType:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
$sel:api:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
$sel:affectedResources:AwsApiCallAction' :: AwsApiCallAction -> Maybe (HashMap Text Text)
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
affectedResources
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
api
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
callerType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DomainDetails
domainDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
errorCode
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RemoteAccountDetails
remoteAccountDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RemoteIpDetails
remoteIpDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serviceName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
userAgent
instance Prelude.NFData AwsApiCallAction where
rnf :: AwsApiCallAction -> ()
rnf AwsApiCallAction' {Maybe Text
Maybe (HashMap Text Text)
Maybe DomainDetails
Maybe RemoteAccountDetails
Maybe RemoteIpDetails
userAgent :: Maybe Text
serviceName :: Maybe Text
remoteIpDetails :: Maybe RemoteIpDetails
remoteAccountDetails :: Maybe RemoteAccountDetails
errorCode :: Maybe Text
domainDetails :: Maybe DomainDetails
callerType :: Maybe Text
api :: Maybe Text
affectedResources :: Maybe (HashMap Text Text)
$sel:userAgent:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
$sel:serviceName:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
$sel:remoteIpDetails:AwsApiCallAction' :: AwsApiCallAction -> Maybe RemoteIpDetails
$sel:remoteAccountDetails:AwsApiCallAction' :: AwsApiCallAction -> Maybe RemoteAccountDetails
$sel:errorCode:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
$sel:domainDetails:AwsApiCallAction' :: AwsApiCallAction -> Maybe DomainDetails
$sel:callerType:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
$sel:api:AwsApiCallAction' :: AwsApiCallAction -> Maybe Text
$sel:affectedResources:AwsApiCallAction' :: AwsApiCallAction -> Maybe (HashMap Text Text)
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
affectedResources
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
api
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
callerType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DomainDetails
domainDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
errorCode
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RemoteAccountDetails
remoteAccountDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RemoteIpDetails
remoteIpDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
serviceName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
userAgent