{-# 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.Kendra.CreateExperience
(
CreateExperience (..),
newCreateExperience,
createExperience_clientToken,
createExperience_configuration,
createExperience_description,
createExperience_roleArn,
createExperience_name,
createExperience_indexId,
CreateExperienceResponse (..),
newCreateExperienceResponse,
createExperienceResponse_httpStatus,
createExperienceResponse_id,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Kendra.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateExperience = CreateExperience'
{
CreateExperience -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
CreateExperience -> Maybe ExperienceConfiguration
configuration :: Prelude.Maybe ExperienceConfiguration,
CreateExperience -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
CreateExperience -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
CreateExperience -> Text
name :: Prelude.Text,
CreateExperience -> Text
indexId :: Prelude.Text
}
deriving (CreateExperience -> CreateExperience -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateExperience -> CreateExperience -> Bool
$c/= :: CreateExperience -> CreateExperience -> Bool
== :: CreateExperience -> CreateExperience -> Bool
$c== :: CreateExperience -> CreateExperience -> Bool
Prelude.Eq, ReadPrec [CreateExperience]
ReadPrec CreateExperience
Int -> ReadS CreateExperience
ReadS [CreateExperience]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateExperience]
$creadListPrec :: ReadPrec [CreateExperience]
readPrec :: ReadPrec CreateExperience
$creadPrec :: ReadPrec CreateExperience
readList :: ReadS [CreateExperience]
$creadList :: ReadS [CreateExperience]
readsPrec :: Int -> ReadS CreateExperience
$creadsPrec :: Int -> ReadS CreateExperience
Prelude.Read, Int -> CreateExperience -> ShowS
[CreateExperience] -> ShowS
CreateExperience -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateExperience] -> ShowS
$cshowList :: [CreateExperience] -> ShowS
show :: CreateExperience -> String
$cshow :: CreateExperience -> String
showsPrec :: Int -> CreateExperience -> ShowS
$cshowsPrec :: Int -> CreateExperience -> ShowS
Prelude.Show, forall x. Rep CreateExperience x -> CreateExperience
forall x. CreateExperience -> Rep CreateExperience x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateExperience x -> CreateExperience
$cfrom :: forall x. CreateExperience -> Rep CreateExperience x
Prelude.Generic)
newCreateExperience ::
Prelude.Text ->
Prelude.Text ->
CreateExperience
newCreateExperience :: Text -> Text -> CreateExperience
newCreateExperience Text
pName_ Text
pIndexId_ =
CreateExperience'
{ $sel:clientToken:CreateExperience' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:configuration:CreateExperience' :: Maybe ExperienceConfiguration
configuration = forall a. Maybe a
Prelude.Nothing,
$sel:description:CreateExperience' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:roleArn:CreateExperience' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
$sel:name:CreateExperience' :: Text
name = Text
pName_,
$sel:indexId:CreateExperience' :: Text
indexId = Text
pIndexId_
}
createExperience_clientToken :: Lens.Lens' CreateExperience (Prelude.Maybe Prelude.Text)
createExperience_clientToken :: Lens' CreateExperience (Maybe Text)
createExperience_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateExperience' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateExperience' :: CreateExperience -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateExperience
s@CreateExperience' {} Maybe Text
a -> CreateExperience
s {$sel:clientToken:CreateExperience' :: Maybe Text
clientToken = Maybe Text
a} :: CreateExperience)
createExperience_configuration :: Lens.Lens' CreateExperience (Prelude.Maybe ExperienceConfiguration)
createExperience_configuration :: Lens' CreateExperience (Maybe ExperienceConfiguration)
createExperience_configuration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateExperience' {Maybe ExperienceConfiguration
configuration :: Maybe ExperienceConfiguration
$sel:configuration:CreateExperience' :: CreateExperience -> Maybe ExperienceConfiguration
configuration} -> Maybe ExperienceConfiguration
configuration) (\s :: CreateExperience
s@CreateExperience' {} Maybe ExperienceConfiguration
a -> CreateExperience
s {$sel:configuration:CreateExperience' :: Maybe ExperienceConfiguration
configuration = Maybe ExperienceConfiguration
a} :: CreateExperience)
createExperience_description :: Lens.Lens' CreateExperience (Prelude.Maybe Prelude.Text)
createExperience_description :: Lens' CreateExperience (Maybe Text)
createExperience_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateExperience' {Maybe Text
description :: Maybe Text
$sel:description:CreateExperience' :: CreateExperience -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateExperience
s@CreateExperience' {} Maybe Text
a -> CreateExperience
s {$sel:description:CreateExperience' :: Maybe Text
description = Maybe Text
a} :: CreateExperience)
createExperience_roleArn :: Lens.Lens' CreateExperience (Prelude.Maybe Prelude.Text)
createExperience_roleArn :: Lens' CreateExperience (Maybe Text)
createExperience_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateExperience' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:CreateExperience' :: CreateExperience -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: CreateExperience
s@CreateExperience' {} Maybe Text
a -> CreateExperience
s {$sel:roleArn:CreateExperience' :: Maybe Text
roleArn = Maybe Text
a} :: CreateExperience)
createExperience_name :: Lens.Lens' CreateExperience Prelude.Text
createExperience_name :: Lens' CreateExperience Text
createExperience_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateExperience' {Text
name :: Text
$sel:name:CreateExperience' :: CreateExperience -> Text
name} -> Text
name) (\s :: CreateExperience
s@CreateExperience' {} Text
a -> CreateExperience
s {$sel:name:CreateExperience' :: Text
name = Text
a} :: CreateExperience)
createExperience_indexId :: Lens.Lens' CreateExperience Prelude.Text
createExperience_indexId :: Lens' CreateExperience Text
createExperience_indexId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateExperience' {Text
indexId :: Text
$sel:indexId:CreateExperience' :: CreateExperience -> Text
indexId} -> Text
indexId) (\s :: CreateExperience
s@CreateExperience' {} Text
a -> CreateExperience
s {$sel:indexId:CreateExperience' :: Text
indexId = Text
a} :: CreateExperience)
instance Core.AWSRequest CreateExperience where
type
AWSResponse CreateExperience =
CreateExperienceResponse
request :: (Service -> Service)
-> CreateExperience -> Request CreateExperience
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 CreateExperience
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateExperience)))
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 ->
Int -> Text -> CreateExperienceResponse
CreateExperienceResponse'
forall (f :: * -> *) a b. Functor 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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Id")
)
instance Prelude.Hashable CreateExperience where
hashWithSalt :: Int -> CreateExperience -> Int
hashWithSalt Int
_salt CreateExperience' {Maybe Text
Maybe ExperienceConfiguration
Text
indexId :: Text
name :: Text
roleArn :: Maybe Text
description :: Maybe Text
configuration :: Maybe ExperienceConfiguration
clientToken :: Maybe Text
$sel:indexId:CreateExperience' :: CreateExperience -> Text
$sel:name:CreateExperience' :: CreateExperience -> Text
$sel:roleArn:CreateExperience' :: CreateExperience -> Maybe Text
$sel:description:CreateExperience' :: CreateExperience -> Maybe Text
$sel:configuration:CreateExperience' :: CreateExperience -> Maybe ExperienceConfiguration
$sel:clientToken:CreateExperience' :: CreateExperience -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExperienceConfiguration
configuration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
roleArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
indexId
instance Prelude.NFData CreateExperience where
rnf :: CreateExperience -> ()
rnf CreateExperience' {Maybe Text
Maybe ExperienceConfiguration
Text
indexId :: Text
name :: Text
roleArn :: Maybe Text
description :: Maybe Text
configuration :: Maybe ExperienceConfiguration
clientToken :: Maybe Text
$sel:indexId:CreateExperience' :: CreateExperience -> Text
$sel:name:CreateExperience' :: CreateExperience -> Text
$sel:roleArn:CreateExperience' :: CreateExperience -> Maybe Text
$sel:description:CreateExperience' :: CreateExperience -> Maybe Text
$sel:configuration:CreateExperience' :: CreateExperience -> Maybe ExperienceConfiguration
$sel:clientToken:CreateExperience' :: CreateExperience -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExperienceConfiguration
configuration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
roleArn
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
indexId
instance Data.ToHeaders CreateExperience where
toHeaders :: CreateExperience -> 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
"AWSKendraFrontendService.CreateExperience" ::
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 CreateExperience where
toJSON :: CreateExperience -> Value
toJSON CreateExperience' {Maybe Text
Maybe ExperienceConfiguration
Text
indexId :: Text
name :: Text
roleArn :: Maybe Text
description :: Maybe Text
configuration :: Maybe ExperienceConfiguration
clientToken :: Maybe Text
$sel:indexId:CreateExperience' :: CreateExperience -> Text
$sel:name:CreateExperience' :: CreateExperience -> Text
$sel:roleArn:CreateExperience' :: CreateExperience -> Maybe Text
$sel:description:CreateExperience' :: CreateExperience -> Maybe Text
$sel:configuration:CreateExperience' :: CreateExperience -> Maybe ExperienceConfiguration
$sel:clientToken:CreateExperience' :: CreateExperience -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"ClientToken" 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 Text
clientToken,
(Key
"Configuration" 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 ExperienceConfiguration
configuration,
(Key
"Description" 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 Text
description,
(Key
"RoleArn" 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 Text
roleArn,
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
"IndexId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
indexId)
]
)
instance Data.ToPath CreateExperience where
toPath :: CreateExperience -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateExperience where
toQuery :: CreateExperience -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateExperienceResponse = CreateExperienceResponse'
{
CreateExperienceResponse -> Int
httpStatus :: Prelude.Int,
CreateExperienceResponse -> Text
id :: Prelude.Text
}
deriving (CreateExperienceResponse -> CreateExperienceResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateExperienceResponse -> CreateExperienceResponse -> Bool
$c/= :: CreateExperienceResponse -> CreateExperienceResponse -> Bool
== :: CreateExperienceResponse -> CreateExperienceResponse -> Bool
$c== :: CreateExperienceResponse -> CreateExperienceResponse -> Bool
Prelude.Eq, ReadPrec [CreateExperienceResponse]
ReadPrec CreateExperienceResponse
Int -> ReadS CreateExperienceResponse
ReadS [CreateExperienceResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateExperienceResponse]
$creadListPrec :: ReadPrec [CreateExperienceResponse]
readPrec :: ReadPrec CreateExperienceResponse
$creadPrec :: ReadPrec CreateExperienceResponse
readList :: ReadS [CreateExperienceResponse]
$creadList :: ReadS [CreateExperienceResponse]
readsPrec :: Int -> ReadS CreateExperienceResponse
$creadsPrec :: Int -> ReadS CreateExperienceResponse
Prelude.Read, Int -> CreateExperienceResponse -> ShowS
[CreateExperienceResponse] -> ShowS
CreateExperienceResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateExperienceResponse] -> ShowS
$cshowList :: [CreateExperienceResponse] -> ShowS
show :: CreateExperienceResponse -> String
$cshow :: CreateExperienceResponse -> String
showsPrec :: Int -> CreateExperienceResponse -> ShowS
$cshowsPrec :: Int -> CreateExperienceResponse -> ShowS
Prelude.Show, forall x.
Rep CreateExperienceResponse x -> CreateExperienceResponse
forall x.
CreateExperienceResponse -> Rep CreateExperienceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateExperienceResponse x -> CreateExperienceResponse
$cfrom :: forall x.
CreateExperienceResponse -> Rep CreateExperienceResponse x
Prelude.Generic)
newCreateExperienceResponse ::
Prelude.Int ->
Prelude.Text ->
CreateExperienceResponse
newCreateExperienceResponse :: Int -> Text -> CreateExperienceResponse
newCreateExperienceResponse Int
pHttpStatus_ Text
pId_ =
CreateExperienceResponse'
{ $sel:httpStatus:CreateExperienceResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:id:CreateExperienceResponse' :: Text
id = Text
pId_
}
createExperienceResponse_httpStatus :: Lens.Lens' CreateExperienceResponse Prelude.Int
createExperienceResponse_httpStatus :: Lens' CreateExperienceResponse Int
createExperienceResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateExperienceResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateExperienceResponse' :: CreateExperienceResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateExperienceResponse
s@CreateExperienceResponse' {} Int
a -> CreateExperienceResponse
s {$sel:httpStatus:CreateExperienceResponse' :: Int
httpStatus = Int
a} :: CreateExperienceResponse)
createExperienceResponse_id :: Lens.Lens' CreateExperienceResponse Prelude.Text
createExperienceResponse_id :: Lens' CreateExperienceResponse Text
createExperienceResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateExperienceResponse' {Text
id :: Text
$sel:id:CreateExperienceResponse' :: CreateExperienceResponse -> Text
id} -> Text
id) (\s :: CreateExperienceResponse
s@CreateExperienceResponse' {} Text
a -> CreateExperienceResponse
s {$sel:id:CreateExperienceResponse' :: Text
id = Text
a} :: CreateExperienceResponse)
instance Prelude.NFData CreateExperienceResponse where
rnf :: CreateExperienceResponse -> ()
rnf CreateExperienceResponse' {Int
Text
id :: Text
httpStatus :: Int
$sel:id:CreateExperienceResponse' :: CreateExperienceResponse -> Text
$sel:httpStatus:CreateExperienceResponse' :: CreateExperienceResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id