{-# 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.AccessAnalyzer.Types.ValidatePolicyFinding where
import Amazonka.AccessAnalyzer.Types.Location
import Amazonka.AccessAnalyzer.Types.ValidatePolicyFindingType
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
data ValidatePolicyFinding = ValidatePolicyFinding'
{
ValidatePolicyFinding -> Text
findingDetails :: Prelude.Text,
ValidatePolicyFinding -> ValidatePolicyFindingType
findingType :: ValidatePolicyFindingType,
ValidatePolicyFinding -> Text
issueCode :: Prelude.Text,
ValidatePolicyFinding -> Text
learnMoreLink :: Prelude.Text,
ValidatePolicyFinding -> [Location]
locations :: [Location]
}
deriving (ValidatePolicyFinding -> ValidatePolicyFinding -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ValidatePolicyFinding -> ValidatePolicyFinding -> Bool
$c/= :: ValidatePolicyFinding -> ValidatePolicyFinding -> Bool
== :: ValidatePolicyFinding -> ValidatePolicyFinding -> Bool
$c== :: ValidatePolicyFinding -> ValidatePolicyFinding -> Bool
Prelude.Eq, ReadPrec [ValidatePolicyFinding]
ReadPrec ValidatePolicyFinding
Int -> ReadS ValidatePolicyFinding
ReadS [ValidatePolicyFinding]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ValidatePolicyFinding]
$creadListPrec :: ReadPrec [ValidatePolicyFinding]
readPrec :: ReadPrec ValidatePolicyFinding
$creadPrec :: ReadPrec ValidatePolicyFinding
readList :: ReadS [ValidatePolicyFinding]
$creadList :: ReadS [ValidatePolicyFinding]
readsPrec :: Int -> ReadS ValidatePolicyFinding
$creadsPrec :: Int -> ReadS ValidatePolicyFinding
Prelude.Read, Int -> ValidatePolicyFinding -> ShowS
[ValidatePolicyFinding] -> ShowS
ValidatePolicyFinding -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ValidatePolicyFinding] -> ShowS
$cshowList :: [ValidatePolicyFinding] -> ShowS
show :: ValidatePolicyFinding -> String
$cshow :: ValidatePolicyFinding -> String
showsPrec :: Int -> ValidatePolicyFinding -> ShowS
$cshowsPrec :: Int -> ValidatePolicyFinding -> ShowS
Prelude.Show, forall x. Rep ValidatePolicyFinding x -> ValidatePolicyFinding
forall x. ValidatePolicyFinding -> Rep ValidatePolicyFinding x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ValidatePolicyFinding x -> ValidatePolicyFinding
$cfrom :: forall x. ValidatePolicyFinding -> Rep ValidatePolicyFinding x
Prelude.Generic)
newValidatePolicyFinding ::
Prelude.Text ->
ValidatePolicyFindingType ->
Prelude.Text ->
Prelude.Text ->
ValidatePolicyFinding
newValidatePolicyFinding :: Text
-> ValidatePolicyFindingType
-> Text
-> Text
-> ValidatePolicyFinding
newValidatePolicyFinding
Text
pFindingDetails_
ValidatePolicyFindingType
pFindingType_
Text
pIssueCode_
Text
pLearnMoreLink_ =
ValidatePolicyFinding'
{ $sel:findingDetails:ValidatePolicyFinding' :: Text
findingDetails =
Text
pFindingDetails_,
$sel:findingType:ValidatePolicyFinding' :: ValidatePolicyFindingType
findingType = ValidatePolicyFindingType
pFindingType_,
$sel:issueCode:ValidatePolicyFinding' :: Text
issueCode = Text
pIssueCode_,
$sel:learnMoreLink:ValidatePolicyFinding' :: Text
learnMoreLink = Text
pLearnMoreLink_,
$sel:locations:ValidatePolicyFinding' :: [Location]
locations = forall a. Monoid a => a
Prelude.mempty
}
validatePolicyFinding_findingDetails :: Lens.Lens' ValidatePolicyFinding Prelude.Text
validatePolicyFinding_findingDetails :: Lens' ValidatePolicyFinding Text
validatePolicyFinding_findingDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidatePolicyFinding' {Text
findingDetails :: Text
$sel:findingDetails:ValidatePolicyFinding' :: ValidatePolicyFinding -> Text
findingDetails} -> Text
findingDetails) (\s :: ValidatePolicyFinding
s@ValidatePolicyFinding' {} Text
a -> ValidatePolicyFinding
s {$sel:findingDetails:ValidatePolicyFinding' :: Text
findingDetails = Text
a} :: ValidatePolicyFinding)
validatePolicyFinding_findingType :: Lens.Lens' ValidatePolicyFinding ValidatePolicyFindingType
validatePolicyFinding_findingType :: Lens' ValidatePolicyFinding ValidatePolicyFindingType
validatePolicyFinding_findingType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidatePolicyFinding' {ValidatePolicyFindingType
findingType :: ValidatePolicyFindingType
$sel:findingType:ValidatePolicyFinding' :: ValidatePolicyFinding -> ValidatePolicyFindingType
findingType} -> ValidatePolicyFindingType
findingType) (\s :: ValidatePolicyFinding
s@ValidatePolicyFinding' {} ValidatePolicyFindingType
a -> ValidatePolicyFinding
s {$sel:findingType:ValidatePolicyFinding' :: ValidatePolicyFindingType
findingType = ValidatePolicyFindingType
a} :: ValidatePolicyFinding)
validatePolicyFinding_issueCode :: Lens.Lens' ValidatePolicyFinding Prelude.Text
validatePolicyFinding_issueCode :: Lens' ValidatePolicyFinding Text
validatePolicyFinding_issueCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidatePolicyFinding' {Text
issueCode :: Text
$sel:issueCode:ValidatePolicyFinding' :: ValidatePolicyFinding -> Text
issueCode} -> Text
issueCode) (\s :: ValidatePolicyFinding
s@ValidatePolicyFinding' {} Text
a -> ValidatePolicyFinding
s {$sel:issueCode:ValidatePolicyFinding' :: Text
issueCode = Text
a} :: ValidatePolicyFinding)
validatePolicyFinding_learnMoreLink :: Lens.Lens' ValidatePolicyFinding Prelude.Text
validatePolicyFinding_learnMoreLink :: Lens' ValidatePolicyFinding Text
validatePolicyFinding_learnMoreLink = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidatePolicyFinding' {Text
learnMoreLink :: Text
$sel:learnMoreLink:ValidatePolicyFinding' :: ValidatePolicyFinding -> Text
learnMoreLink} -> Text
learnMoreLink) (\s :: ValidatePolicyFinding
s@ValidatePolicyFinding' {} Text
a -> ValidatePolicyFinding
s {$sel:learnMoreLink:ValidatePolicyFinding' :: Text
learnMoreLink = Text
a} :: ValidatePolicyFinding)
validatePolicyFinding_locations :: Lens.Lens' ValidatePolicyFinding [Location]
validatePolicyFinding_locations :: Lens' ValidatePolicyFinding [Location]
validatePolicyFinding_locations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidatePolicyFinding' {[Location]
locations :: [Location]
$sel:locations:ValidatePolicyFinding' :: ValidatePolicyFinding -> [Location]
locations} -> [Location]
locations) (\s :: ValidatePolicyFinding
s@ValidatePolicyFinding' {} [Location]
a -> ValidatePolicyFinding
s {$sel:locations:ValidatePolicyFinding' :: [Location]
locations = [Location]
a} :: ValidatePolicyFinding) 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 Data.FromJSON ValidatePolicyFinding where
parseJSON :: Value -> Parser ValidatePolicyFinding
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"ValidatePolicyFinding"
( \Object
x ->
Text
-> ValidatePolicyFindingType
-> Text
-> Text
-> [Location]
-> ValidatePolicyFinding
ValidatePolicyFinding'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"findingDetails")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"findingType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"issueCode")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"learnMoreLink")
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
"locations" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
)
instance Prelude.Hashable ValidatePolicyFinding where
hashWithSalt :: Int -> ValidatePolicyFinding -> Int
hashWithSalt Int
_salt ValidatePolicyFinding' {[Location]
Text
ValidatePolicyFindingType
locations :: [Location]
learnMoreLink :: Text
issueCode :: Text
findingType :: ValidatePolicyFindingType
findingDetails :: Text
$sel:locations:ValidatePolicyFinding' :: ValidatePolicyFinding -> [Location]
$sel:learnMoreLink:ValidatePolicyFinding' :: ValidatePolicyFinding -> Text
$sel:issueCode:ValidatePolicyFinding' :: ValidatePolicyFinding -> Text
$sel:findingType:ValidatePolicyFinding' :: ValidatePolicyFinding -> ValidatePolicyFindingType
$sel:findingDetails:ValidatePolicyFinding' :: ValidatePolicyFinding -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
findingDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ValidatePolicyFindingType
findingType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
issueCode
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
learnMoreLink
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [Location]
locations
instance Prelude.NFData ValidatePolicyFinding where
rnf :: ValidatePolicyFinding -> ()
rnf ValidatePolicyFinding' {[Location]
Text
ValidatePolicyFindingType
locations :: [Location]
learnMoreLink :: Text
issueCode :: Text
findingType :: ValidatePolicyFindingType
findingDetails :: Text
$sel:locations:ValidatePolicyFinding' :: ValidatePolicyFinding -> [Location]
$sel:learnMoreLink:ValidatePolicyFinding' :: ValidatePolicyFinding -> Text
$sel:issueCode:ValidatePolicyFinding' :: ValidatePolicyFinding -> Text
$sel:findingType:ValidatePolicyFinding' :: ValidatePolicyFinding -> ValidatePolicyFindingType
$sel:findingDetails:ValidatePolicyFinding' :: ValidatePolicyFinding -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
findingDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ValidatePolicyFindingType
findingType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
issueCode
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
learnMoreLink
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [Location]
locations