{-# 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.FMS.GetViolationDetails
(
GetViolationDetails (..),
newGetViolationDetails,
getViolationDetails_policyId,
getViolationDetails_memberAccount,
getViolationDetails_resourceId,
getViolationDetails_resourceType,
GetViolationDetailsResponse (..),
newGetViolationDetailsResponse,
getViolationDetailsResponse_violationDetail,
getViolationDetailsResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FMS.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetViolationDetails = GetViolationDetails'
{
GetViolationDetails -> Text
policyId :: Prelude.Text,
GetViolationDetails -> Text
memberAccount :: Prelude.Text,
GetViolationDetails -> Text
resourceId :: Prelude.Text,
GetViolationDetails -> Text
resourceType :: Prelude.Text
}
deriving (GetViolationDetails -> GetViolationDetails -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetViolationDetails -> GetViolationDetails -> Bool
$c/= :: GetViolationDetails -> GetViolationDetails -> Bool
== :: GetViolationDetails -> GetViolationDetails -> Bool
$c== :: GetViolationDetails -> GetViolationDetails -> Bool
Prelude.Eq, ReadPrec [GetViolationDetails]
ReadPrec GetViolationDetails
Int -> ReadS GetViolationDetails
ReadS [GetViolationDetails]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetViolationDetails]
$creadListPrec :: ReadPrec [GetViolationDetails]
readPrec :: ReadPrec GetViolationDetails
$creadPrec :: ReadPrec GetViolationDetails
readList :: ReadS [GetViolationDetails]
$creadList :: ReadS [GetViolationDetails]
readsPrec :: Int -> ReadS GetViolationDetails
$creadsPrec :: Int -> ReadS GetViolationDetails
Prelude.Read, Int -> GetViolationDetails -> ShowS
[GetViolationDetails] -> ShowS
GetViolationDetails -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetViolationDetails] -> ShowS
$cshowList :: [GetViolationDetails] -> ShowS
show :: GetViolationDetails -> String
$cshow :: GetViolationDetails -> String
showsPrec :: Int -> GetViolationDetails -> ShowS
$cshowsPrec :: Int -> GetViolationDetails -> ShowS
Prelude.Show, forall x. Rep GetViolationDetails x -> GetViolationDetails
forall x. GetViolationDetails -> Rep GetViolationDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetViolationDetails x -> GetViolationDetails
$cfrom :: forall x. GetViolationDetails -> Rep GetViolationDetails x
Prelude.Generic)
newGetViolationDetails ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
GetViolationDetails
newGetViolationDetails :: Text -> Text -> Text -> Text -> GetViolationDetails
newGetViolationDetails
Text
pPolicyId_
Text
pMemberAccount_
Text
pResourceId_
Text
pResourceType_ =
GetViolationDetails'
{ $sel:policyId:GetViolationDetails' :: Text
policyId = Text
pPolicyId_,
$sel:memberAccount:GetViolationDetails' :: Text
memberAccount = Text
pMemberAccount_,
$sel:resourceId:GetViolationDetails' :: Text
resourceId = Text
pResourceId_,
$sel:resourceType:GetViolationDetails' :: Text
resourceType = Text
pResourceType_
}
getViolationDetails_policyId :: Lens.Lens' GetViolationDetails Prelude.Text
getViolationDetails_policyId :: Lens' GetViolationDetails Text
getViolationDetails_policyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetViolationDetails' {Text
policyId :: Text
$sel:policyId:GetViolationDetails' :: GetViolationDetails -> Text
policyId} -> Text
policyId) (\s :: GetViolationDetails
s@GetViolationDetails' {} Text
a -> GetViolationDetails
s {$sel:policyId:GetViolationDetails' :: Text
policyId = Text
a} :: GetViolationDetails)
getViolationDetails_memberAccount :: Lens.Lens' GetViolationDetails Prelude.Text
getViolationDetails_memberAccount :: Lens' GetViolationDetails Text
getViolationDetails_memberAccount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetViolationDetails' {Text
memberAccount :: Text
$sel:memberAccount:GetViolationDetails' :: GetViolationDetails -> Text
memberAccount} -> Text
memberAccount) (\s :: GetViolationDetails
s@GetViolationDetails' {} Text
a -> GetViolationDetails
s {$sel:memberAccount:GetViolationDetails' :: Text
memberAccount = Text
a} :: GetViolationDetails)
getViolationDetails_resourceId :: Lens.Lens' GetViolationDetails Prelude.Text
getViolationDetails_resourceId :: Lens' GetViolationDetails Text
getViolationDetails_resourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetViolationDetails' {Text
resourceId :: Text
$sel:resourceId:GetViolationDetails' :: GetViolationDetails -> Text
resourceId} -> Text
resourceId) (\s :: GetViolationDetails
s@GetViolationDetails' {} Text
a -> GetViolationDetails
s {$sel:resourceId:GetViolationDetails' :: Text
resourceId = Text
a} :: GetViolationDetails)
getViolationDetails_resourceType :: Lens.Lens' GetViolationDetails Prelude.Text
getViolationDetails_resourceType :: Lens' GetViolationDetails Text
getViolationDetails_resourceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetViolationDetails' {Text
resourceType :: Text
$sel:resourceType:GetViolationDetails' :: GetViolationDetails -> Text
resourceType} -> Text
resourceType) (\s :: GetViolationDetails
s@GetViolationDetails' {} Text
a -> GetViolationDetails
s {$sel:resourceType:GetViolationDetails' :: Text
resourceType = Text
a} :: GetViolationDetails)
instance Core.AWSRequest GetViolationDetails where
type
AWSResponse GetViolationDetails =
GetViolationDetailsResponse
request :: (Service -> Service)
-> GetViolationDetails -> Request GetViolationDetails
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 GetViolationDetails
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse GetViolationDetails)))
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 ->
Maybe ViolationDetail -> Int -> GetViolationDetailsResponse
GetViolationDetailsResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ViolationDetail")
forall (f :: * -> *) a b. Applicative f => 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))
)
instance Prelude.Hashable GetViolationDetails where
hashWithSalt :: Int -> GetViolationDetails -> Int
hashWithSalt Int
_salt GetViolationDetails' {Text
resourceType :: Text
resourceId :: Text
memberAccount :: Text
policyId :: Text
$sel:resourceType:GetViolationDetails' :: GetViolationDetails -> Text
$sel:resourceId:GetViolationDetails' :: GetViolationDetails -> Text
$sel:memberAccount:GetViolationDetails' :: GetViolationDetails -> Text
$sel:policyId:GetViolationDetails' :: GetViolationDetails -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
policyId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
memberAccount
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceType
instance Prelude.NFData GetViolationDetails where
rnf :: GetViolationDetails -> ()
rnf GetViolationDetails' {Text
resourceType :: Text
resourceId :: Text
memberAccount :: Text
policyId :: Text
$sel:resourceType:GetViolationDetails' :: GetViolationDetails -> Text
$sel:resourceId:GetViolationDetails' :: GetViolationDetails -> Text
$sel:memberAccount:GetViolationDetails' :: GetViolationDetails -> Text
$sel:policyId:GetViolationDetails' :: GetViolationDetails -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
policyId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
memberAccount
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceType
instance Data.ToHeaders GetViolationDetails where
toHeaders :: GetViolationDetails -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSFMS_20180101.GetViolationDetails" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetViolationDetails where
toJSON :: GetViolationDetails -> Value
toJSON GetViolationDetails' {Text
resourceType :: Text
resourceId :: Text
memberAccount :: Text
policyId :: Text
$sel:resourceType:GetViolationDetails' :: GetViolationDetails -> Text
$sel:resourceId:GetViolationDetails' :: GetViolationDetails -> Text
$sel:memberAccount:GetViolationDetails' :: GetViolationDetails -> Text
$sel:policyId:GetViolationDetails' :: GetViolationDetails -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"PolicyId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
policyId),
forall a. a -> Maybe a
Prelude.Just (Key
"MemberAccount" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
memberAccount),
forall a. a -> Maybe a
Prelude.Just (Key
"ResourceId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
resourceId),
forall a. a -> Maybe a
Prelude.Just (Key
"ResourceType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
resourceType)
]
)
instance Data.ToPath GetViolationDetails where
toPath :: GetViolationDetails -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GetViolationDetails where
toQuery :: GetViolationDetails -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetViolationDetailsResponse = GetViolationDetailsResponse'
{
GetViolationDetailsResponse -> Maybe ViolationDetail
violationDetail :: Prelude.Maybe ViolationDetail,
GetViolationDetailsResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetViolationDetailsResponse -> GetViolationDetailsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetViolationDetailsResponse -> GetViolationDetailsResponse -> Bool
$c/= :: GetViolationDetailsResponse -> GetViolationDetailsResponse -> Bool
== :: GetViolationDetailsResponse -> GetViolationDetailsResponse -> Bool
$c== :: GetViolationDetailsResponse -> GetViolationDetailsResponse -> Bool
Prelude.Eq, ReadPrec [GetViolationDetailsResponse]
ReadPrec GetViolationDetailsResponse
Int -> ReadS GetViolationDetailsResponse
ReadS [GetViolationDetailsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetViolationDetailsResponse]
$creadListPrec :: ReadPrec [GetViolationDetailsResponse]
readPrec :: ReadPrec GetViolationDetailsResponse
$creadPrec :: ReadPrec GetViolationDetailsResponse
readList :: ReadS [GetViolationDetailsResponse]
$creadList :: ReadS [GetViolationDetailsResponse]
readsPrec :: Int -> ReadS GetViolationDetailsResponse
$creadsPrec :: Int -> ReadS GetViolationDetailsResponse
Prelude.Read, Int -> GetViolationDetailsResponse -> ShowS
[GetViolationDetailsResponse] -> ShowS
GetViolationDetailsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetViolationDetailsResponse] -> ShowS
$cshowList :: [GetViolationDetailsResponse] -> ShowS
show :: GetViolationDetailsResponse -> String
$cshow :: GetViolationDetailsResponse -> String
showsPrec :: Int -> GetViolationDetailsResponse -> ShowS
$cshowsPrec :: Int -> GetViolationDetailsResponse -> ShowS
Prelude.Show, forall x.
Rep GetViolationDetailsResponse x -> GetViolationDetailsResponse
forall x.
GetViolationDetailsResponse -> Rep GetViolationDetailsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetViolationDetailsResponse x -> GetViolationDetailsResponse
$cfrom :: forall x.
GetViolationDetailsResponse -> Rep GetViolationDetailsResponse x
Prelude.Generic)
newGetViolationDetailsResponse ::
Prelude.Int ->
GetViolationDetailsResponse
newGetViolationDetailsResponse :: Int -> GetViolationDetailsResponse
newGetViolationDetailsResponse Int
pHttpStatus_ =
GetViolationDetailsResponse'
{ $sel:violationDetail:GetViolationDetailsResponse' :: Maybe ViolationDetail
violationDetail =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetViolationDetailsResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getViolationDetailsResponse_violationDetail :: Lens.Lens' GetViolationDetailsResponse (Prelude.Maybe ViolationDetail)
getViolationDetailsResponse_violationDetail :: Lens' GetViolationDetailsResponse (Maybe ViolationDetail)
getViolationDetailsResponse_violationDetail = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetViolationDetailsResponse' {Maybe ViolationDetail
violationDetail :: Maybe ViolationDetail
$sel:violationDetail:GetViolationDetailsResponse' :: GetViolationDetailsResponse -> Maybe ViolationDetail
violationDetail} -> Maybe ViolationDetail
violationDetail) (\s :: GetViolationDetailsResponse
s@GetViolationDetailsResponse' {} Maybe ViolationDetail
a -> GetViolationDetailsResponse
s {$sel:violationDetail:GetViolationDetailsResponse' :: Maybe ViolationDetail
violationDetail = Maybe ViolationDetail
a} :: GetViolationDetailsResponse)
getViolationDetailsResponse_httpStatus :: Lens.Lens' GetViolationDetailsResponse Prelude.Int
getViolationDetailsResponse_httpStatus :: Lens' GetViolationDetailsResponse Int
getViolationDetailsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetViolationDetailsResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetViolationDetailsResponse' :: GetViolationDetailsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetViolationDetailsResponse
s@GetViolationDetailsResponse' {} Int
a -> GetViolationDetailsResponse
s {$sel:httpStatus:GetViolationDetailsResponse' :: Int
httpStatus = Int
a} :: GetViolationDetailsResponse)
instance Prelude.NFData GetViolationDetailsResponse where
rnf :: GetViolationDetailsResponse -> ()
rnf GetViolationDetailsResponse' {Int
Maybe ViolationDetail
httpStatus :: Int
violationDetail :: Maybe ViolationDetail
$sel:httpStatus:GetViolationDetailsResponse' :: GetViolationDetailsResponse -> Int
$sel:violationDetail:GetViolationDetailsResponse' :: GetViolationDetailsResponse -> Maybe ViolationDetail
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ViolationDetail
violationDetail
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus