{-# 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.Personalize.CreateMetricAttribution
(
CreateMetricAttribution (..),
newCreateMetricAttribution,
createMetricAttribution_name,
createMetricAttribution_datasetGroupArn,
createMetricAttribution_metrics,
createMetricAttribution_metricsOutputConfig,
CreateMetricAttributionResponse (..),
newCreateMetricAttributionResponse,
createMetricAttributionResponse_metricAttributionArn,
createMetricAttributionResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Personalize.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateMetricAttribution = CreateMetricAttribution'
{
CreateMetricAttribution -> Text
name :: Prelude.Text,
CreateMetricAttribution -> Text
datasetGroupArn :: Prelude.Text,
CreateMetricAttribution -> [MetricAttribute]
metrics :: [MetricAttribute],
CreateMetricAttribution -> MetricAttributionOutput
metricsOutputConfig :: MetricAttributionOutput
}
deriving (CreateMetricAttribution -> CreateMetricAttribution -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateMetricAttribution -> CreateMetricAttribution -> Bool
$c/= :: CreateMetricAttribution -> CreateMetricAttribution -> Bool
== :: CreateMetricAttribution -> CreateMetricAttribution -> Bool
$c== :: CreateMetricAttribution -> CreateMetricAttribution -> Bool
Prelude.Eq, ReadPrec [CreateMetricAttribution]
ReadPrec CreateMetricAttribution
Int -> ReadS CreateMetricAttribution
ReadS [CreateMetricAttribution]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateMetricAttribution]
$creadListPrec :: ReadPrec [CreateMetricAttribution]
readPrec :: ReadPrec CreateMetricAttribution
$creadPrec :: ReadPrec CreateMetricAttribution
readList :: ReadS [CreateMetricAttribution]
$creadList :: ReadS [CreateMetricAttribution]
readsPrec :: Int -> ReadS CreateMetricAttribution
$creadsPrec :: Int -> ReadS CreateMetricAttribution
Prelude.Read, Int -> CreateMetricAttribution -> ShowS
[CreateMetricAttribution] -> ShowS
CreateMetricAttribution -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateMetricAttribution] -> ShowS
$cshowList :: [CreateMetricAttribution] -> ShowS
show :: CreateMetricAttribution -> String
$cshow :: CreateMetricAttribution -> String
showsPrec :: Int -> CreateMetricAttribution -> ShowS
$cshowsPrec :: Int -> CreateMetricAttribution -> ShowS
Prelude.Show, forall x. Rep CreateMetricAttribution x -> CreateMetricAttribution
forall x. CreateMetricAttribution -> Rep CreateMetricAttribution x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateMetricAttribution x -> CreateMetricAttribution
$cfrom :: forall x. CreateMetricAttribution -> Rep CreateMetricAttribution x
Prelude.Generic)
newCreateMetricAttribution ::
Prelude.Text ->
Prelude.Text ->
MetricAttributionOutput ->
CreateMetricAttribution
newCreateMetricAttribution :: Text -> Text -> MetricAttributionOutput -> CreateMetricAttribution
newCreateMetricAttribution
Text
pName_
Text
pDatasetGroupArn_
MetricAttributionOutput
pMetricsOutputConfig_ =
CreateMetricAttribution'
{ $sel:name:CreateMetricAttribution' :: Text
name = Text
pName_,
$sel:datasetGroupArn:CreateMetricAttribution' :: Text
datasetGroupArn = Text
pDatasetGroupArn_,
$sel:metrics:CreateMetricAttribution' :: [MetricAttribute]
metrics = forall a. Monoid a => a
Prelude.mempty,
$sel:metricsOutputConfig:CreateMetricAttribution' :: MetricAttributionOutput
metricsOutputConfig = MetricAttributionOutput
pMetricsOutputConfig_
}
createMetricAttribution_name :: Lens.Lens' CreateMetricAttribution Prelude.Text
createMetricAttribution_name :: Lens' CreateMetricAttribution Text
createMetricAttribution_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMetricAttribution' {Text
name :: Text
$sel:name:CreateMetricAttribution' :: CreateMetricAttribution -> Text
name} -> Text
name) (\s :: CreateMetricAttribution
s@CreateMetricAttribution' {} Text
a -> CreateMetricAttribution
s {$sel:name:CreateMetricAttribution' :: Text
name = Text
a} :: CreateMetricAttribution)
createMetricAttribution_datasetGroupArn :: Lens.Lens' CreateMetricAttribution Prelude.Text
createMetricAttribution_datasetGroupArn :: Lens' CreateMetricAttribution Text
createMetricAttribution_datasetGroupArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMetricAttribution' {Text
datasetGroupArn :: Text
$sel:datasetGroupArn:CreateMetricAttribution' :: CreateMetricAttribution -> Text
datasetGroupArn} -> Text
datasetGroupArn) (\s :: CreateMetricAttribution
s@CreateMetricAttribution' {} Text
a -> CreateMetricAttribution
s {$sel:datasetGroupArn:CreateMetricAttribution' :: Text
datasetGroupArn = Text
a} :: CreateMetricAttribution)
createMetricAttribution_metrics :: Lens.Lens' CreateMetricAttribution [MetricAttribute]
createMetricAttribution_metrics :: Lens' CreateMetricAttribution [MetricAttribute]
createMetricAttribution_metrics = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMetricAttribution' {[MetricAttribute]
metrics :: [MetricAttribute]
$sel:metrics:CreateMetricAttribution' :: CreateMetricAttribution -> [MetricAttribute]
metrics} -> [MetricAttribute]
metrics) (\s :: CreateMetricAttribution
s@CreateMetricAttribution' {} [MetricAttribute]
a -> CreateMetricAttribution
s {$sel:metrics:CreateMetricAttribution' :: [MetricAttribute]
metrics = [MetricAttribute]
a} :: CreateMetricAttribution) 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
createMetricAttribution_metricsOutputConfig :: Lens.Lens' CreateMetricAttribution MetricAttributionOutput
createMetricAttribution_metricsOutputConfig :: Lens' CreateMetricAttribution MetricAttributionOutput
createMetricAttribution_metricsOutputConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMetricAttribution' {MetricAttributionOutput
metricsOutputConfig :: MetricAttributionOutput
$sel:metricsOutputConfig:CreateMetricAttribution' :: CreateMetricAttribution -> MetricAttributionOutput
metricsOutputConfig} -> MetricAttributionOutput
metricsOutputConfig) (\s :: CreateMetricAttribution
s@CreateMetricAttribution' {} MetricAttributionOutput
a -> CreateMetricAttribution
s {$sel:metricsOutputConfig:CreateMetricAttribution' :: MetricAttributionOutput
metricsOutputConfig = MetricAttributionOutput
a} :: CreateMetricAttribution)
instance Core.AWSRequest CreateMetricAttribution where
type
AWSResponse CreateMetricAttribution =
CreateMetricAttributionResponse
request :: (Service -> Service)
-> CreateMetricAttribution -> Request CreateMetricAttribution
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 CreateMetricAttribution
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateMetricAttribution)))
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 Text -> Int -> CreateMetricAttributionResponse
CreateMetricAttributionResponse'
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
"metricAttributionArn")
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 CreateMetricAttribution where
hashWithSalt :: Int -> CreateMetricAttribution -> Int
hashWithSalt Int
_salt CreateMetricAttribution' {[MetricAttribute]
Text
MetricAttributionOutput
metricsOutputConfig :: MetricAttributionOutput
metrics :: [MetricAttribute]
datasetGroupArn :: Text
name :: Text
$sel:metricsOutputConfig:CreateMetricAttribution' :: CreateMetricAttribution -> MetricAttributionOutput
$sel:metrics:CreateMetricAttribution' :: CreateMetricAttribution -> [MetricAttribute]
$sel:datasetGroupArn:CreateMetricAttribution' :: CreateMetricAttribution -> Text
$sel:name:CreateMetricAttribution' :: CreateMetricAttribution -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
datasetGroupArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [MetricAttribute]
metrics
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MetricAttributionOutput
metricsOutputConfig
instance Prelude.NFData CreateMetricAttribution where
rnf :: CreateMetricAttribution -> ()
rnf CreateMetricAttribution' {[MetricAttribute]
Text
MetricAttributionOutput
metricsOutputConfig :: MetricAttributionOutput
metrics :: [MetricAttribute]
datasetGroupArn :: Text
name :: Text
$sel:metricsOutputConfig:CreateMetricAttribution' :: CreateMetricAttribution -> MetricAttributionOutput
$sel:metrics:CreateMetricAttribution' :: CreateMetricAttribution -> [MetricAttribute]
$sel:datasetGroupArn:CreateMetricAttribution' :: CreateMetricAttribution -> Text
$sel:name:CreateMetricAttribution' :: CreateMetricAttribution -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
datasetGroupArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [MetricAttribute]
metrics
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MetricAttributionOutput
metricsOutputConfig
instance Data.ToHeaders CreateMetricAttribution where
toHeaders :: CreateMetricAttribution -> 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
"AmazonPersonalize.CreateMetricAttribution" ::
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 CreateMetricAttribution where
toJSON :: CreateMetricAttribution -> Value
toJSON CreateMetricAttribution' {[MetricAttribute]
Text
MetricAttributionOutput
metricsOutputConfig :: MetricAttributionOutput
metrics :: [MetricAttribute]
datasetGroupArn :: Text
name :: Text
$sel:metricsOutputConfig:CreateMetricAttribution' :: CreateMetricAttribution -> MetricAttributionOutput
$sel:metrics:CreateMetricAttribution' :: CreateMetricAttribution -> [MetricAttribute]
$sel:datasetGroupArn:CreateMetricAttribution' :: CreateMetricAttribution -> Text
$sel:name:CreateMetricAttribution' :: CreateMetricAttribution -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name),
forall a. a -> Maybe a
Prelude.Just
(Key
"datasetGroupArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
datasetGroupArn),
forall a. a -> Maybe a
Prelude.Just (Key
"metrics" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= [MetricAttribute]
metrics),
forall a. a -> Maybe a
Prelude.Just
(Key
"metricsOutputConfig" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MetricAttributionOutput
metricsOutputConfig)
]
)
instance Data.ToPath CreateMetricAttribution where
toPath :: CreateMetricAttribution -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateMetricAttribution where
toQuery :: CreateMetricAttribution -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateMetricAttributionResponse = CreateMetricAttributionResponse'
{
CreateMetricAttributionResponse -> Maybe Text
metricAttributionArn :: Prelude.Maybe Prelude.Text,
CreateMetricAttributionResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateMetricAttributionResponse
-> CreateMetricAttributionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateMetricAttributionResponse
-> CreateMetricAttributionResponse -> Bool
$c/= :: CreateMetricAttributionResponse
-> CreateMetricAttributionResponse -> Bool
== :: CreateMetricAttributionResponse
-> CreateMetricAttributionResponse -> Bool
$c== :: CreateMetricAttributionResponse
-> CreateMetricAttributionResponse -> Bool
Prelude.Eq, ReadPrec [CreateMetricAttributionResponse]
ReadPrec CreateMetricAttributionResponse
Int -> ReadS CreateMetricAttributionResponse
ReadS [CreateMetricAttributionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateMetricAttributionResponse]
$creadListPrec :: ReadPrec [CreateMetricAttributionResponse]
readPrec :: ReadPrec CreateMetricAttributionResponse
$creadPrec :: ReadPrec CreateMetricAttributionResponse
readList :: ReadS [CreateMetricAttributionResponse]
$creadList :: ReadS [CreateMetricAttributionResponse]
readsPrec :: Int -> ReadS CreateMetricAttributionResponse
$creadsPrec :: Int -> ReadS CreateMetricAttributionResponse
Prelude.Read, Int -> CreateMetricAttributionResponse -> ShowS
[CreateMetricAttributionResponse] -> ShowS
CreateMetricAttributionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateMetricAttributionResponse] -> ShowS
$cshowList :: [CreateMetricAttributionResponse] -> ShowS
show :: CreateMetricAttributionResponse -> String
$cshow :: CreateMetricAttributionResponse -> String
showsPrec :: Int -> CreateMetricAttributionResponse -> ShowS
$cshowsPrec :: Int -> CreateMetricAttributionResponse -> ShowS
Prelude.Show, forall x.
Rep CreateMetricAttributionResponse x
-> CreateMetricAttributionResponse
forall x.
CreateMetricAttributionResponse
-> Rep CreateMetricAttributionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateMetricAttributionResponse x
-> CreateMetricAttributionResponse
$cfrom :: forall x.
CreateMetricAttributionResponse
-> Rep CreateMetricAttributionResponse x
Prelude.Generic)
newCreateMetricAttributionResponse ::
Prelude.Int ->
CreateMetricAttributionResponse
newCreateMetricAttributionResponse :: Int -> CreateMetricAttributionResponse
newCreateMetricAttributionResponse Int
pHttpStatus_ =
CreateMetricAttributionResponse'
{ $sel:metricAttributionArn:CreateMetricAttributionResponse' :: Maybe Text
metricAttributionArn =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateMetricAttributionResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createMetricAttributionResponse_metricAttributionArn :: Lens.Lens' CreateMetricAttributionResponse (Prelude.Maybe Prelude.Text)
createMetricAttributionResponse_metricAttributionArn :: Lens' CreateMetricAttributionResponse (Maybe Text)
createMetricAttributionResponse_metricAttributionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMetricAttributionResponse' {Maybe Text
metricAttributionArn :: Maybe Text
$sel:metricAttributionArn:CreateMetricAttributionResponse' :: CreateMetricAttributionResponse -> Maybe Text
metricAttributionArn} -> Maybe Text
metricAttributionArn) (\s :: CreateMetricAttributionResponse
s@CreateMetricAttributionResponse' {} Maybe Text
a -> CreateMetricAttributionResponse
s {$sel:metricAttributionArn:CreateMetricAttributionResponse' :: Maybe Text
metricAttributionArn = Maybe Text
a} :: CreateMetricAttributionResponse)
createMetricAttributionResponse_httpStatus :: Lens.Lens' CreateMetricAttributionResponse Prelude.Int
createMetricAttributionResponse_httpStatus :: Lens' CreateMetricAttributionResponse Int
createMetricAttributionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMetricAttributionResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateMetricAttributionResponse' :: CreateMetricAttributionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateMetricAttributionResponse
s@CreateMetricAttributionResponse' {} Int
a -> CreateMetricAttributionResponse
s {$sel:httpStatus:CreateMetricAttributionResponse' :: Int
httpStatus = Int
a} :: CreateMetricAttributionResponse)
instance
Prelude.NFData
CreateMetricAttributionResponse
where
rnf :: CreateMetricAttributionResponse -> ()
rnf CreateMetricAttributionResponse' {Int
Maybe Text
httpStatus :: Int
metricAttributionArn :: Maybe Text
$sel:httpStatus:CreateMetricAttributionResponse' :: CreateMetricAttributionResponse -> Int
$sel:metricAttributionArn:CreateMetricAttributionResponse' :: CreateMetricAttributionResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
metricAttributionArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus