{-# 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.CreateFilter
(
CreateFilter (..),
newCreateFilter,
createFilter_tags,
createFilter_name,
createFilter_datasetGroupArn,
createFilter_filterExpression,
CreateFilterResponse (..),
newCreateFilterResponse,
createFilterResponse_filterArn,
createFilterResponse_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 CreateFilter = CreateFilter'
{
CreateFilter -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateFilter -> Text
name :: Prelude.Text,
CreateFilter -> Text
datasetGroupArn :: Prelude.Text,
CreateFilter -> Sensitive Text
filterExpression :: Data.Sensitive Prelude.Text
}
deriving (CreateFilter -> CreateFilter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFilter -> CreateFilter -> Bool
$c/= :: CreateFilter -> CreateFilter -> Bool
== :: CreateFilter -> CreateFilter -> Bool
$c== :: CreateFilter -> CreateFilter -> Bool
Prelude.Eq, Int -> CreateFilter -> ShowS
[CreateFilter] -> ShowS
CreateFilter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFilter] -> ShowS
$cshowList :: [CreateFilter] -> ShowS
show :: CreateFilter -> String
$cshow :: CreateFilter -> String
showsPrec :: Int -> CreateFilter -> ShowS
$cshowsPrec :: Int -> CreateFilter -> ShowS
Prelude.Show, forall x. Rep CreateFilter x -> CreateFilter
forall x. CreateFilter -> Rep CreateFilter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateFilter x -> CreateFilter
$cfrom :: forall x. CreateFilter -> Rep CreateFilter x
Prelude.Generic)
newCreateFilter ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
CreateFilter
newCreateFilter :: Text -> Text -> Text -> CreateFilter
newCreateFilter
Text
pName_
Text
pDatasetGroupArn_
Text
pFilterExpression_ =
CreateFilter'
{ $sel:tags:CreateFilter' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:name:CreateFilter' :: Text
name = Text
pName_,
$sel:datasetGroupArn:CreateFilter' :: Text
datasetGroupArn = Text
pDatasetGroupArn_,
$sel:filterExpression:CreateFilter' :: Sensitive Text
filterExpression =
forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pFilterExpression_
}
createFilter_tags :: Lens.Lens' CreateFilter (Prelude.Maybe [Tag])
createFilter_tags :: Lens' CreateFilter (Maybe [Tag])
createFilter_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilter' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateFilter' :: CreateFilter -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateFilter
s@CreateFilter' {} Maybe [Tag]
a -> CreateFilter
s {$sel:tags:CreateFilter' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateFilter) 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
createFilter_name :: Lens.Lens' CreateFilter Prelude.Text
createFilter_name :: Lens' CreateFilter Text
createFilter_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilter' {Text
name :: Text
$sel:name:CreateFilter' :: CreateFilter -> Text
name} -> Text
name) (\s :: CreateFilter
s@CreateFilter' {} Text
a -> CreateFilter
s {$sel:name:CreateFilter' :: Text
name = Text
a} :: CreateFilter)
createFilter_datasetGroupArn :: Lens.Lens' CreateFilter Prelude.Text
createFilter_datasetGroupArn :: Lens' CreateFilter Text
createFilter_datasetGroupArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilter' {Text
datasetGroupArn :: Text
$sel:datasetGroupArn:CreateFilter' :: CreateFilter -> Text
datasetGroupArn} -> Text
datasetGroupArn) (\s :: CreateFilter
s@CreateFilter' {} Text
a -> CreateFilter
s {$sel:datasetGroupArn:CreateFilter' :: Text
datasetGroupArn = Text
a} :: CreateFilter)
createFilter_filterExpression :: Lens.Lens' CreateFilter Prelude.Text
createFilter_filterExpression :: Lens' CreateFilter Text
createFilter_filterExpression = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilter' {Sensitive Text
filterExpression :: Sensitive Text
$sel:filterExpression:CreateFilter' :: CreateFilter -> Sensitive Text
filterExpression} -> Sensitive Text
filterExpression) (\s :: CreateFilter
s@CreateFilter' {} Sensitive Text
a -> CreateFilter
s {$sel:filterExpression:CreateFilter' :: Sensitive Text
filterExpression = Sensitive Text
a} :: CreateFilter) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive
instance Core.AWSRequest CreateFilter where
type AWSResponse CreateFilter = CreateFilterResponse
request :: (Service -> Service) -> CreateFilter -> Request CreateFilter
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 CreateFilter
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateFilter)))
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 -> CreateFilterResponse
CreateFilterResponse'
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
"filterArn")
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 CreateFilter where
hashWithSalt :: Int -> CreateFilter -> Int
hashWithSalt Int
_salt CreateFilter' {Maybe [Tag]
Text
Sensitive Text
filterExpression :: Sensitive Text
datasetGroupArn :: Text
name :: Text
tags :: Maybe [Tag]
$sel:filterExpression:CreateFilter' :: CreateFilter -> Sensitive Text
$sel:datasetGroupArn:CreateFilter' :: CreateFilter -> Text
$sel:name:CreateFilter' :: CreateFilter -> Text
$sel:tags:CreateFilter' :: CreateFilter -> Maybe [Tag]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
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` Sensitive Text
filterExpression
instance Prelude.NFData CreateFilter where
rnf :: CreateFilter -> ()
rnf CreateFilter' {Maybe [Tag]
Text
Sensitive Text
filterExpression :: Sensitive Text
datasetGroupArn :: Text
name :: Text
tags :: Maybe [Tag]
$sel:filterExpression:CreateFilter' :: CreateFilter -> Sensitive Text
$sel:datasetGroupArn:CreateFilter' :: CreateFilter -> Text
$sel:name:CreateFilter' :: CreateFilter -> Text
$sel:tags:CreateFilter' :: CreateFilter -> Maybe [Tag]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` 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 Sensitive Text
filterExpression
instance Data.ToHeaders CreateFilter where
toHeaders :: CreateFilter -> 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.CreateFilter" ::
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 CreateFilter where
toJSON :: CreateFilter -> Value
toJSON CreateFilter' {Maybe [Tag]
Text
Sensitive Text
filterExpression :: Sensitive Text
datasetGroupArn :: Text
name :: Text
tags :: Maybe [Tag]
$sel:filterExpression:CreateFilter' :: CreateFilter -> Sensitive Text
$sel:datasetGroupArn:CreateFilter' :: CreateFilter -> Text
$sel:name:CreateFilter' :: CreateFilter -> Text
$sel:tags:CreateFilter' :: CreateFilter -> Maybe [Tag]
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"tags" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
tags,
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
"filterExpression" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
filterExpression)
]
)
instance Data.ToPath CreateFilter where
toPath :: CreateFilter -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateFilter where
toQuery :: CreateFilter -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateFilterResponse = CreateFilterResponse'
{
CreateFilterResponse -> Maybe Text
filterArn :: Prelude.Maybe Prelude.Text,
CreateFilterResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateFilterResponse -> CreateFilterResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFilterResponse -> CreateFilterResponse -> Bool
$c/= :: CreateFilterResponse -> CreateFilterResponse -> Bool
== :: CreateFilterResponse -> CreateFilterResponse -> Bool
$c== :: CreateFilterResponse -> CreateFilterResponse -> Bool
Prelude.Eq, ReadPrec [CreateFilterResponse]
ReadPrec CreateFilterResponse
Int -> ReadS CreateFilterResponse
ReadS [CreateFilterResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFilterResponse]
$creadListPrec :: ReadPrec [CreateFilterResponse]
readPrec :: ReadPrec CreateFilterResponse
$creadPrec :: ReadPrec CreateFilterResponse
readList :: ReadS [CreateFilterResponse]
$creadList :: ReadS [CreateFilterResponse]
readsPrec :: Int -> ReadS CreateFilterResponse
$creadsPrec :: Int -> ReadS CreateFilterResponse
Prelude.Read, Int -> CreateFilterResponse -> ShowS
[CreateFilterResponse] -> ShowS
CreateFilterResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFilterResponse] -> ShowS
$cshowList :: [CreateFilterResponse] -> ShowS
show :: CreateFilterResponse -> String
$cshow :: CreateFilterResponse -> String
showsPrec :: Int -> CreateFilterResponse -> ShowS
$cshowsPrec :: Int -> CreateFilterResponse -> ShowS
Prelude.Show, forall x. Rep CreateFilterResponse x -> CreateFilterResponse
forall x. CreateFilterResponse -> Rep CreateFilterResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateFilterResponse x -> CreateFilterResponse
$cfrom :: forall x. CreateFilterResponse -> Rep CreateFilterResponse x
Prelude.Generic)
newCreateFilterResponse ::
Prelude.Int ->
CreateFilterResponse
newCreateFilterResponse :: Int -> CreateFilterResponse
newCreateFilterResponse Int
pHttpStatus_ =
CreateFilterResponse'
{ $sel:filterArn:CreateFilterResponse' :: Maybe Text
filterArn = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateFilterResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createFilterResponse_filterArn :: Lens.Lens' CreateFilterResponse (Prelude.Maybe Prelude.Text)
createFilterResponse_filterArn :: Lens' CreateFilterResponse (Maybe Text)
createFilterResponse_filterArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilterResponse' {Maybe Text
filterArn :: Maybe Text
$sel:filterArn:CreateFilterResponse' :: CreateFilterResponse -> Maybe Text
filterArn} -> Maybe Text
filterArn) (\s :: CreateFilterResponse
s@CreateFilterResponse' {} Maybe Text
a -> CreateFilterResponse
s {$sel:filterArn:CreateFilterResponse' :: Maybe Text
filterArn = Maybe Text
a} :: CreateFilterResponse)
createFilterResponse_httpStatus :: Lens.Lens' CreateFilterResponse Prelude.Int
createFilterResponse_httpStatus :: Lens' CreateFilterResponse Int
createFilterResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFilterResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateFilterResponse' :: CreateFilterResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateFilterResponse
s@CreateFilterResponse' {} Int
a -> CreateFilterResponse
s {$sel:httpStatus:CreateFilterResponse' :: Int
httpStatus = Int
a} :: CreateFilterResponse)
instance Prelude.NFData CreateFilterResponse where
rnf :: CreateFilterResponse -> ()
rnf CreateFilterResponse' {Int
Maybe Text
httpStatus :: Int
filterArn :: Maybe Text
$sel:httpStatus:CreateFilterResponse' :: CreateFilterResponse -> Int
$sel:filterArn:CreateFilterResponse' :: CreateFilterResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
filterArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus