{-# 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.IAM.GenerateServiceLastAccessedDetails
(
GenerateServiceLastAccessedDetails (..),
newGenerateServiceLastAccessedDetails,
generateServiceLastAccessedDetails_granularity,
generateServiceLastAccessedDetails_arn,
GenerateServiceLastAccessedDetailsResponse (..),
newGenerateServiceLastAccessedDetailsResponse,
generateServiceLastAccessedDetailsResponse_jobId,
generateServiceLastAccessedDetailsResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IAM.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GenerateServiceLastAccessedDetails = GenerateServiceLastAccessedDetails'
{
GenerateServiceLastAccessedDetails
-> Maybe AccessAdvisorUsageGranularityType
granularity :: Prelude.Maybe AccessAdvisorUsageGranularityType,
GenerateServiceLastAccessedDetails -> Text
arn :: Prelude.Text
}
deriving (GenerateServiceLastAccessedDetails
-> GenerateServiceLastAccessedDetails -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GenerateServiceLastAccessedDetails
-> GenerateServiceLastAccessedDetails -> Bool
$c/= :: GenerateServiceLastAccessedDetails
-> GenerateServiceLastAccessedDetails -> Bool
== :: GenerateServiceLastAccessedDetails
-> GenerateServiceLastAccessedDetails -> Bool
$c== :: GenerateServiceLastAccessedDetails
-> GenerateServiceLastAccessedDetails -> Bool
Prelude.Eq, ReadPrec [GenerateServiceLastAccessedDetails]
ReadPrec GenerateServiceLastAccessedDetails
Int -> ReadS GenerateServiceLastAccessedDetails
ReadS [GenerateServiceLastAccessedDetails]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GenerateServiceLastAccessedDetails]
$creadListPrec :: ReadPrec [GenerateServiceLastAccessedDetails]
readPrec :: ReadPrec GenerateServiceLastAccessedDetails
$creadPrec :: ReadPrec GenerateServiceLastAccessedDetails
readList :: ReadS [GenerateServiceLastAccessedDetails]
$creadList :: ReadS [GenerateServiceLastAccessedDetails]
readsPrec :: Int -> ReadS GenerateServiceLastAccessedDetails
$creadsPrec :: Int -> ReadS GenerateServiceLastAccessedDetails
Prelude.Read, Int -> GenerateServiceLastAccessedDetails -> ShowS
[GenerateServiceLastAccessedDetails] -> ShowS
GenerateServiceLastAccessedDetails -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GenerateServiceLastAccessedDetails] -> ShowS
$cshowList :: [GenerateServiceLastAccessedDetails] -> ShowS
show :: GenerateServiceLastAccessedDetails -> String
$cshow :: GenerateServiceLastAccessedDetails -> String
showsPrec :: Int -> GenerateServiceLastAccessedDetails -> ShowS
$cshowsPrec :: Int -> GenerateServiceLastAccessedDetails -> ShowS
Prelude.Show, forall x.
Rep GenerateServiceLastAccessedDetails x
-> GenerateServiceLastAccessedDetails
forall x.
GenerateServiceLastAccessedDetails
-> Rep GenerateServiceLastAccessedDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GenerateServiceLastAccessedDetails x
-> GenerateServiceLastAccessedDetails
$cfrom :: forall x.
GenerateServiceLastAccessedDetails
-> Rep GenerateServiceLastAccessedDetails x
Prelude.Generic)
newGenerateServiceLastAccessedDetails ::
Prelude.Text ->
GenerateServiceLastAccessedDetails
newGenerateServiceLastAccessedDetails :: Text -> GenerateServiceLastAccessedDetails
newGenerateServiceLastAccessedDetails Text
pArn_ =
GenerateServiceLastAccessedDetails'
{ $sel:granularity:GenerateServiceLastAccessedDetails' :: Maybe AccessAdvisorUsageGranularityType
granularity =
forall a. Maybe a
Prelude.Nothing,
$sel:arn:GenerateServiceLastAccessedDetails' :: Text
arn = Text
pArn_
}
generateServiceLastAccessedDetails_granularity :: Lens.Lens' GenerateServiceLastAccessedDetails (Prelude.Maybe AccessAdvisorUsageGranularityType)
generateServiceLastAccessedDetails_granularity :: Lens'
GenerateServiceLastAccessedDetails
(Maybe AccessAdvisorUsageGranularityType)
generateServiceLastAccessedDetails_granularity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateServiceLastAccessedDetails' {Maybe AccessAdvisorUsageGranularityType
granularity :: Maybe AccessAdvisorUsageGranularityType
$sel:granularity:GenerateServiceLastAccessedDetails' :: GenerateServiceLastAccessedDetails
-> Maybe AccessAdvisorUsageGranularityType
granularity} -> Maybe AccessAdvisorUsageGranularityType
granularity) (\s :: GenerateServiceLastAccessedDetails
s@GenerateServiceLastAccessedDetails' {} Maybe AccessAdvisorUsageGranularityType
a -> GenerateServiceLastAccessedDetails
s {$sel:granularity:GenerateServiceLastAccessedDetails' :: Maybe AccessAdvisorUsageGranularityType
granularity = Maybe AccessAdvisorUsageGranularityType
a} :: GenerateServiceLastAccessedDetails)
generateServiceLastAccessedDetails_arn :: Lens.Lens' GenerateServiceLastAccessedDetails Prelude.Text
generateServiceLastAccessedDetails_arn :: Lens' GenerateServiceLastAccessedDetails Text
generateServiceLastAccessedDetails_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateServiceLastAccessedDetails' {Text
arn :: Text
$sel:arn:GenerateServiceLastAccessedDetails' :: GenerateServiceLastAccessedDetails -> Text
arn} -> Text
arn) (\s :: GenerateServiceLastAccessedDetails
s@GenerateServiceLastAccessedDetails' {} Text
a -> GenerateServiceLastAccessedDetails
s {$sel:arn:GenerateServiceLastAccessedDetails' :: Text
arn = Text
a} :: GenerateServiceLastAccessedDetails)
instance
Core.AWSRequest
GenerateServiceLastAccessedDetails
where
type
AWSResponse GenerateServiceLastAccessedDetails =
GenerateServiceLastAccessedDetailsResponse
request :: (Service -> Service)
-> GenerateServiceLastAccessedDetails
-> Request GenerateServiceLastAccessedDetails
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GenerateServiceLastAccessedDetails
-> ClientResponse ClientBody
-> m (Either
Error
(ClientResponse (AWSResponse GenerateServiceLastAccessedDetails)))
response =
forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
-> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
Text
"GenerateServiceLastAccessedDetailsResult"
( \Int
s ResponseHeaders
h [Node]
x ->
Maybe Text -> Int -> GenerateServiceLastAccessedDetailsResponse
GenerateServiceLastAccessedDetailsResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"JobId")
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
GenerateServiceLastAccessedDetails
where
hashWithSalt :: Int -> GenerateServiceLastAccessedDetails -> Int
hashWithSalt
Int
_salt
GenerateServiceLastAccessedDetails' {Maybe AccessAdvisorUsageGranularityType
Text
arn :: Text
granularity :: Maybe AccessAdvisorUsageGranularityType
$sel:arn:GenerateServiceLastAccessedDetails' :: GenerateServiceLastAccessedDetails -> Text
$sel:granularity:GenerateServiceLastAccessedDetails' :: GenerateServiceLastAccessedDetails
-> Maybe AccessAdvisorUsageGranularityType
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AccessAdvisorUsageGranularityType
granularity
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
arn
instance
Prelude.NFData
GenerateServiceLastAccessedDetails
where
rnf :: GenerateServiceLastAccessedDetails -> ()
rnf GenerateServiceLastAccessedDetails' {Maybe AccessAdvisorUsageGranularityType
Text
arn :: Text
granularity :: Maybe AccessAdvisorUsageGranularityType
$sel:arn:GenerateServiceLastAccessedDetails' :: GenerateServiceLastAccessedDetails -> Text
$sel:granularity:GenerateServiceLastAccessedDetails' :: GenerateServiceLastAccessedDetails
-> Maybe AccessAdvisorUsageGranularityType
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe AccessAdvisorUsageGranularityType
granularity
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn
instance
Data.ToHeaders
GenerateServiceLastAccessedDetails
where
toHeaders :: GenerateServiceLastAccessedDetails -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance
Data.ToPath
GenerateServiceLastAccessedDetails
where
toPath :: GenerateServiceLastAccessedDetails -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance
Data.ToQuery
GenerateServiceLastAccessedDetails
where
toQuery :: GenerateServiceLastAccessedDetails -> QueryString
toQuery GenerateServiceLastAccessedDetails' {Maybe AccessAdvisorUsageGranularityType
Text
arn :: Text
granularity :: Maybe AccessAdvisorUsageGranularityType
$sel:arn:GenerateServiceLastAccessedDetails' :: GenerateServiceLastAccessedDetails -> Text
$sel:granularity:GenerateServiceLastAccessedDetails' :: GenerateServiceLastAccessedDetails
-> Maybe AccessAdvisorUsageGranularityType
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"Action"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"GenerateServiceLastAccessedDetails" ::
Prelude.ByteString
),
ByteString
"Version"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2010-05-08" :: Prelude.ByteString),
ByteString
"Granularity" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe AccessAdvisorUsageGranularityType
granularity,
ByteString
"Arn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
arn
]
data GenerateServiceLastAccessedDetailsResponse = GenerateServiceLastAccessedDetailsResponse'
{
GenerateServiceLastAccessedDetailsResponse -> Maybe Text
jobId :: Prelude.Maybe Prelude.Text,
GenerateServiceLastAccessedDetailsResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GenerateServiceLastAccessedDetailsResponse
-> GenerateServiceLastAccessedDetailsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GenerateServiceLastAccessedDetailsResponse
-> GenerateServiceLastAccessedDetailsResponse -> Bool
$c/= :: GenerateServiceLastAccessedDetailsResponse
-> GenerateServiceLastAccessedDetailsResponse -> Bool
== :: GenerateServiceLastAccessedDetailsResponse
-> GenerateServiceLastAccessedDetailsResponse -> Bool
$c== :: GenerateServiceLastAccessedDetailsResponse
-> GenerateServiceLastAccessedDetailsResponse -> Bool
Prelude.Eq, ReadPrec [GenerateServiceLastAccessedDetailsResponse]
ReadPrec GenerateServiceLastAccessedDetailsResponse
Int -> ReadS GenerateServiceLastAccessedDetailsResponse
ReadS [GenerateServiceLastAccessedDetailsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GenerateServiceLastAccessedDetailsResponse]
$creadListPrec :: ReadPrec [GenerateServiceLastAccessedDetailsResponse]
readPrec :: ReadPrec GenerateServiceLastAccessedDetailsResponse
$creadPrec :: ReadPrec GenerateServiceLastAccessedDetailsResponse
readList :: ReadS [GenerateServiceLastAccessedDetailsResponse]
$creadList :: ReadS [GenerateServiceLastAccessedDetailsResponse]
readsPrec :: Int -> ReadS GenerateServiceLastAccessedDetailsResponse
$creadsPrec :: Int -> ReadS GenerateServiceLastAccessedDetailsResponse
Prelude.Read, Int -> GenerateServiceLastAccessedDetailsResponse -> ShowS
[GenerateServiceLastAccessedDetailsResponse] -> ShowS
GenerateServiceLastAccessedDetailsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GenerateServiceLastAccessedDetailsResponse] -> ShowS
$cshowList :: [GenerateServiceLastAccessedDetailsResponse] -> ShowS
show :: GenerateServiceLastAccessedDetailsResponse -> String
$cshow :: GenerateServiceLastAccessedDetailsResponse -> String
showsPrec :: Int -> GenerateServiceLastAccessedDetailsResponse -> ShowS
$cshowsPrec :: Int -> GenerateServiceLastAccessedDetailsResponse -> ShowS
Prelude.Show, forall x.
Rep GenerateServiceLastAccessedDetailsResponse x
-> GenerateServiceLastAccessedDetailsResponse
forall x.
GenerateServiceLastAccessedDetailsResponse
-> Rep GenerateServiceLastAccessedDetailsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GenerateServiceLastAccessedDetailsResponse x
-> GenerateServiceLastAccessedDetailsResponse
$cfrom :: forall x.
GenerateServiceLastAccessedDetailsResponse
-> Rep GenerateServiceLastAccessedDetailsResponse x
Prelude.Generic)
newGenerateServiceLastAccessedDetailsResponse ::
Prelude.Int ->
GenerateServiceLastAccessedDetailsResponse
newGenerateServiceLastAccessedDetailsResponse :: Int -> GenerateServiceLastAccessedDetailsResponse
newGenerateServiceLastAccessedDetailsResponse
Int
pHttpStatus_ =
GenerateServiceLastAccessedDetailsResponse'
{ $sel:jobId:GenerateServiceLastAccessedDetailsResponse' :: Maybe Text
jobId =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GenerateServiceLastAccessedDetailsResponse' :: Int
httpStatus = Int
pHttpStatus_
}
generateServiceLastAccessedDetailsResponse_jobId :: Lens.Lens' GenerateServiceLastAccessedDetailsResponse (Prelude.Maybe Prelude.Text)
generateServiceLastAccessedDetailsResponse_jobId :: Lens' GenerateServiceLastAccessedDetailsResponse (Maybe Text)
generateServiceLastAccessedDetailsResponse_jobId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateServiceLastAccessedDetailsResponse' {Maybe Text
jobId :: Maybe Text
$sel:jobId:GenerateServiceLastAccessedDetailsResponse' :: GenerateServiceLastAccessedDetailsResponse -> Maybe Text
jobId} -> Maybe Text
jobId) (\s :: GenerateServiceLastAccessedDetailsResponse
s@GenerateServiceLastAccessedDetailsResponse' {} Maybe Text
a -> GenerateServiceLastAccessedDetailsResponse
s {$sel:jobId:GenerateServiceLastAccessedDetailsResponse' :: Maybe Text
jobId = Maybe Text
a} :: GenerateServiceLastAccessedDetailsResponse)
generateServiceLastAccessedDetailsResponse_httpStatus :: Lens.Lens' GenerateServiceLastAccessedDetailsResponse Prelude.Int
generateServiceLastAccessedDetailsResponse_httpStatus :: Lens' GenerateServiceLastAccessedDetailsResponse Int
generateServiceLastAccessedDetailsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateServiceLastAccessedDetailsResponse' {Int
httpStatus :: Int
$sel:httpStatus:GenerateServiceLastAccessedDetailsResponse' :: GenerateServiceLastAccessedDetailsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GenerateServiceLastAccessedDetailsResponse
s@GenerateServiceLastAccessedDetailsResponse' {} Int
a -> GenerateServiceLastAccessedDetailsResponse
s {$sel:httpStatus:GenerateServiceLastAccessedDetailsResponse' :: Int
httpStatus = Int
a} :: GenerateServiceLastAccessedDetailsResponse)
instance
Prelude.NFData
GenerateServiceLastAccessedDetailsResponse
where
rnf :: GenerateServiceLastAccessedDetailsResponse -> ()
rnf GenerateServiceLastAccessedDetailsResponse' {Int
Maybe Text
httpStatus :: Int
jobId :: Maybe Text
$sel:httpStatus:GenerateServiceLastAccessedDetailsResponse' :: GenerateServiceLastAccessedDetailsResponse -> Int
$sel:jobId:GenerateServiceLastAccessedDetailsResponse' :: GenerateServiceLastAccessedDetailsResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus