{-# 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.Pi.GetResourceMetadata
(
GetResourceMetadata (..),
newGetResourceMetadata,
getResourceMetadata_serviceType,
getResourceMetadata_identifier,
GetResourceMetadataResponse (..),
newGetResourceMetadataResponse,
getResourceMetadataResponse_features,
getResourceMetadataResponse_identifier,
getResourceMetadataResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Pi.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetResourceMetadata = GetResourceMetadata'
{
GetResourceMetadata -> ServiceType
serviceType :: ServiceType,
GetResourceMetadata -> Text
identifier :: Prelude.Text
}
deriving (GetResourceMetadata -> GetResourceMetadata -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetResourceMetadata -> GetResourceMetadata -> Bool
$c/= :: GetResourceMetadata -> GetResourceMetadata -> Bool
== :: GetResourceMetadata -> GetResourceMetadata -> Bool
$c== :: GetResourceMetadata -> GetResourceMetadata -> Bool
Prelude.Eq, ReadPrec [GetResourceMetadata]
ReadPrec GetResourceMetadata
Int -> ReadS GetResourceMetadata
ReadS [GetResourceMetadata]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetResourceMetadata]
$creadListPrec :: ReadPrec [GetResourceMetadata]
readPrec :: ReadPrec GetResourceMetadata
$creadPrec :: ReadPrec GetResourceMetadata
readList :: ReadS [GetResourceMetadata]
$creadList :: ReadS [GetResourceMetadata]
readsPrec :: Int -> ReadS GetResourceMetadata
$creadsPrec :: Int -> ReadS GetResourceMetadata
Prelude.Read, Int -> GetResourceMetadata -> ShowS
[GetResourceMetadata] -> ShowS
GetResourceMetadata -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetResourceMetadata] -> ShowS
$cshowList :: [GetResourceMetadata] -> ShowS
show :: GetResourceMetadata -> String
$cshow :: GetResourceMetadata -> String
showsPrec :: Int -> GetResourceMetadata -> ShowS
$cshowsPrec :: Int -> GetResourceMetadata -> ShowS
Prelude.Show, forall x. Rep GetResourceMetadata x -> GetResourceMetadata
forall x. GetResourceMetadata -> Rep GetResourceMetadata x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetResourceMetadata x -> GetResourceMetadata
$cfrom :: forall x. GetResourceMetadata -> Rep GetResourceMetadata x
Prelude.Generic)
newGetResourceMetadata ::
ServiceType ->
Prelude.Text ->
GetResourceMetadata
newGetResourceMetadata :: ServiceType -> Text -> GetResourceMetadata
newGetResourceMetadata ServiceType
pServiceType_ Text
pIdentifier_ =
GetResourceMetadata'
{ $sel:serviceType:GetResourceMetadata' :: ServiceType
serviceType = ServiceType
pServiceType_,
$sel:identifier:GetResourceMetadata' :: Text
identifier = Text
pIdentifier_
}
getResourceMetadata_serviceType :: Lens.Lens' GetResourceMetadata ServiceType
getResourceMetadata_serviceType :: Lens' GetResourceMetadata ServiceType
getResourceMetadata_serviceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceMetadata' {ServiceType
serviceType :: ServiceType
$sel:serviceType:GetResourceMetadata' :: GetResourceMetadata -> ServiceType
serviceType} -> ServiceType
serviceType) (\s :: GetResourceMetadata
s@GetResourceMetadata' {} ServiceType
a -> GetResourceMetadata
s {$sel:serviceType:GetResourceMetadata' :: ServiceType
serviceType = ServiceType
a} :: GetResourceMetadata)
getResourceMetadata_identifier :: Lens.Lens' GetResourceMetadata Prelude.Text
getResourceMetadata_identifier :: Lens' GetResourceMetadata Text
getResourceMetadata_identifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceMetadata' {Text
identifier :: Text
$sel:identifier:GetResourceMetadata' :: GetResourceMetadata -> Text
identifier} -> Text
identifier) (\s :: GetResourceMetadata
s@GetResourceMetadata' {} Text
a -> GetResourceMetadata
s {$sel:identifier:GetResourceMetadata' :: Text
identifier = Text
a} :: GetResourceMetadata)
instance Core.AWSRequest GetResourceMetadata where
type
AWSResponse GetResourceMetadata =
GetResourceMetadataResponse
request :: (Service -> Service)
-> GetResourceMetadata -> Request GetResourceMetadata
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 GetResourceMetadata
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse GetResourceMetadata)))
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 (HashMap Text FeatureMetadata)
-> Maybe Text -> Int -> GetResourceMetadataResponse
GetResourceMetadataResponse'
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
"Features" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ 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 -> Either String (Maybe a)
Data..?> Key
"Identifier")
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 GetResourceMetadata where
hashWithSalt :: Int -> GetResourceMetadata -> Int
hashWithSalt Int
_salt GetResourceMetadata' {Text
ServiceType
identifier :: Text
serviceType :: ServiceType
$sel:identifier:GetResourceMetadata' :: GetResourceMetadata -> Text
$sel:serviceType:GetResourceMetadata' :: GetResourceMetadata -> ServiceType
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ServiceType
serviceType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
identifier
instance Prelude.NFData GetResourceMetadata where
rnf :: GetResourceMetadata -> ()
rnf GetResourceMetadata' {Text
ServiceType
identifier :: Text
serviceType :: ServiceType
$sel:identifier:GetResourceMetadata' :: GetResourceMetadata -> Text
$sel:serviceType:GetResourceMetadata' :: GetResourceMetadata -> ServiceType
..} =
forall a. NFData a => a -> ()
Prelude.rnf ServiceType
serviceType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
identifier
instance Data.ToHeaders GetResourceMetadata where
toHeaders :: GetResourceMetadata -> 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
"PerformanceInsightsv20180227.GetResourceMetadata" ::
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 GetResourceMetadata where
toJSON :: GetResourceMetadata -> Value
toJSON GetResourceMetadata' {Text
ServiceType
identifier :: Text
serviceType :: ServiceType
$sel:identifier:GetResourceMetadata' :: GetResourceMetadata -> Text
$sel:serviceType:GetResourceMetadata' :: GetResourceMetadata -> ServiceType
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"ServiceType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ServiceType
serviceType),
forall a. a -> Maybe a
Prelude.Just (Key
"Identifier" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
identifier)
]
)
instance Data.ToPath GetResourceMetadata where
toPath :: GetResourceMetadata -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GetResourceMetadata where
toQuery :: GetResourceMetadata -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetResourceMetadataResponse = GetResourceMetadataResponse'
{
GetResourceMetadataResponse -> Maybe (HashMap Text FeatureMetadata)
features :: Prelude.Maybe (Prelude.HashMap Prelude.Text FeatureMetadata),
GetResourceMetadataResponse -> Maybe Text
identifier :: Prelude.Maybe Prelude.Text,
GetResourceMetadataResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetResourceMetadataResponse -> GetResourceMetadataResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetResourceMetadataResponse -> GetResourceMetadataResponse -> Bool
$c/= :: GetResourceMetadataResponse -> GetResourceMetadataResponse -> Bool
== :: GetResourceMetadataResponse -> GetResourceMetadataResponse -> Bool
$c== :: GetResourceMetadataResponse -> GetResourceMetadataResponse -> Bool
Prelude.Eq, ReadPrec [GetResourceMetadataResponse]
ReadPrec GetResourceMetadataResponse
Int -> ReadS GetResourceMetadataResponse
ReadS [GetResourceMetadataResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetResourceMetadataResponse]
$creadListPrec :: ReadPrec [GetResourceMetadataResponse]
readPrec :: ReadPrec GetResourceMetadataResponse
$creadPrec :: ReadPrec GetResourceMetadataResponse
readList :: ReadS [GetResourceMetadataResponse]
$creadList :: ReadS [GetResourceMetadataResponse]
readsPrec :: Int -> ReadS GetResourceMetadataResponse
$creadsPrec :: Int -> ReadS GetResourceMetadataResponse
Prelude.Read, Int -> GetResourceMetadataResponse -> ShowS
[GetResourceMetadataResponse] -> ShowS
GetResourceMetadataResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetResourceMetadataResponse] -> ShowS
$cshowList :: [GetResourceMetadataResponse] -> ShowS
show :: GetResourceMetadataResponse -> String
$cshow :: GetResourceMetadataResponse -> String
showsPrec :: Int -> GetResourceMetadataResponse -> ShowS
$cshowsPrec :: Int -> GetResourceMetadataResponse -> ShowS
Prelude.Show, forall x.
Rep GetResourceMetadataResponse x -> GetResourceMetadataResponse
forall x.
GetResourceMetadataResponse -> Rep GetResourceMetadataResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetResourceMetadataResponse x -> GetResourceMetadataResponse
$cfrom :: forall x.
GetResourceMetadataResponse -> Rep GetResourceMetadataResponse x
Prelude.Generic)
newGetResourceMetadataResponse ::
Prelude.Int ->
GetResourceMetadataResponse
newGetResourceMetadataResponse :: Int -> GetResourceMetadataResponse
newGetResourceMetadataResponse Int
pHttpStatus_ =
GetResourceMetadataResponse'
{ $sel:features:GetResourceMetadataResponse' :: Maybe (HashMap Text FeatureMetadata)
features =
forall a. Maybe a
Prelude.Nothing,
$sel:identifier:GetResourceMetadataResponse' :: Maybe Text
identifier = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetResourceMetadataResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getResourceMetadataResponse_features :: Lens.Lens' GetResourceMetadataResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text FeatureMetadata))
getResourceMetadataResponse_features :: Lens'
GetResourceMetadataResponse (Maybe (HashMap Text FeatureMetadata))
getResourceMetadataResponse_features = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceMetadataResponse' {Maybe (HashMap Text FeatureMetadata)
features :: Maybe (HashMap Text FeatureMetadata)
$sel:features:GetResourceMetadataResponse' :: GetResourceMetadataResponse -> Maybe (HashMap Text FeatureMetadata)
features} -> Maybe (HashMap Text FeatureMetadata)
features) (\s :: GetResourceMetadataResponse
s@GetResourceMetadataResponse' {} Maybe (HashMap Text FeatureMetadata)
a -> GetResourceMetadataResponse
s {$sel:features:GetResourceMetadataResponse' :: Maybe (HashMap Text FeatureMetadata)
features = Maybe (HashMap Text FeatureMetadata)
a} :: GetResourceMetadataResponse) 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
getResourceMetadataResponse_identifier :: Lens.Lens' GetResourceMetadataResponse (Prelude.Maybe Prelude.Text)
getResourceMetadataResponse_identifier :: Lens' GetResourceMetadataResponse (Maybe Text)
getResourceMetadataResponse_identifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceMetadataResponse' {Maybe Text
identifier :: Maybe Text
$sel:identifier:GetResourceMetadataResponse' :: GetResourceMetadataResponse -> Maybe Text
identifier} -> Maybe Text
identifier) (\s :: GetResourceMetadataResponse
s@GetResourceMetadataResponse' {} Maybe Text
a -> GetResourceMetadataResponse
s {$sel:identifier:GetResourceMetadataResponse' :: Maybe Text
identifier = Maybe Text
a} :: GetResourceMetadataResponse)
getResourceMetadataResponse_httpStatus :: Lens.Lens' GetResourceMetadataResponse Prelude.Int
getResourceMetadataResponse_httpStatus :: Lens' GetResourceMetadataResponse Int
getResourceMetadataResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetResourceMetadataResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetResourceMetadataResponse' :: GetResourceMetadataResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetResourceMetadataResponse
s@GetResourceMetadataResponse' {} Int
a -> GetResourceMetadataResponse
s {$sel:httpStatus:GetResourceMetadataResponse' :: Int
httpStatus = Int
a} :: GetResourceMetadataResponse)
instance Prelude.NFData GetResourceMetadataResponse where
rnf :: GetResourceMetadataResponse -> ()
rnf GetResourceMetadataResponse' {Int
Maybe Text
Maybe (HashMap Text FeatureMetadata)
httpStatus :: Int
identifier :: Maybe Text
features :: Maybe (HashMap Text FeatureMetadata)
$sel:httpStatus:GetResourceMetadataResponse' :: GetResourceMetadataResponse -> Int
$sel:identifier:GetResourceMetadataResponse' :: GetResourceMetadataResponse -> Maybe Text
$sel:features:GetResourceMetadataResponse' :: GetResourceMetadataResponse -> Maybe (HashMap Text FeatureMetadata)
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text FeatureMetadata)
features
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
identifier
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus