{-# 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.ResourceExplorer2.CreateIndex
(
CreateIndex (..),
newCreateIndex,
createIndex_clientToken,
createIndex_tags,
CreateIndexResponse (..),
newCreateIndexResponse,
createIndexResponse_arn,
createIndexResponse_createdAt,
createIndexResponse_state,
createIndexResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import Amazonka.ResourceExplorer2.Types
import qualified Amazonka.Response as Response
data CreateIndex = CreateIndex'
{
CreateIndex -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
CreateIndex -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)
}
deriving (CreateIndex -> CreateIndex -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateIndex -> CreateIndex -> Bool
$c/= :: CreateIndex -> CreateIndex -> Bool
== :: CreateIndex -> CreateIndex -> Bool
$c== :: CreateIndex -> CreateIndex -> Bool
Prelude.Eq, ReadPrec [CreateIndex]
ReadPrec CreateIndex
Int -> ReadS CreateIndex
ReadS [CreateIndex]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateIndex]
$creadListPrec :: ReadPrec [CreateIndex]
readPrec :: ReadPrec CreateIndex
$creadPrec :: ReadPrec CreateIndex
readList :: ReadS [CreateIndex]
$creadList :: ReadS [CreateIndex]
readsPrec :: Int -> ReadS CreateIndex
$creadsPrec :: Int -> ReadS CreateIndex
Prelude.Read, Int -> CreateIndex -> ShowS
[CreateIndex] -> ShowS
CreateIndex -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateIndex] -> ShowS
$cshowList :: [CreateIndex] -> ShowS
show :: CreateIndex -> String
$cshow :: CreateIndex -> String
showsPrec :: Int -> CreateIndex -> ShowS
$cshowsPrec :: Int -> CreateIndex -> ShowS
Prelude.Show, forall x. Rep CreateIndex x -> CreateIndex
forall x. CreateIndex -> Rep CreateIndex x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateIndex x -> CreateIndex
$cfrom :: forall x. CreateIndex -> Rep CreateIndex x
Prelude.Generic)
newCreateIndex ::
CreateIndex
newCreateIndex :: CreateIndex
newCreateIndex =
CreateIndex'
{ $sel:clientToken:CreateIndex' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateIndex' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing
}
createIndex_clientToken :: Lens.Lens' CreateIndex (Prelude.Maybe Prelude.Text)
createIndex_clientToken :: Lens' CreateIndex (Maybe Text)
createIndex_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIndex' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateIndex' :: CreateIndex -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateIndex
s@CreateIndex' {} Maybe Text
a -> CreateIndex
s {$sel:clientToken:CreateIndex' :: Maybe Text
clientToken = Maybe Text
a} :: CreateIndex)
createIndex_tags :: Lens.Lens' CreateIndex (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createIndex_tags :: Lens' CreateIndex (Maybe (HashMap Text Text))
createIndex_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIndex' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreateIndex' :: CreateIndex -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreateIndex
s@CreateIndex' {} Maybe (HashMap Text Text)
a -> CreateIndex
s {$sel:tags:CreateIndex' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreateIndex) 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
instance Core.AWSRequest CreateIndex where
type AWSResponse CreateIndex = CreateIndexResponse
request :: (Service -> Service) -> CreateIndex -> Request CreateIndex
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 CreateIndex
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateIndex)))
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
-> Maybe ISO8601 -> Maybe IndexState -> Int -> CreateIndexResponse
CreateIndexResponse'
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
"Arn")
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
"CreatedAt")
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
"State")
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 CreateIndex where
hashWithSalt :: Int -> CreateIndex -> Int
hashWithSalt Int
_salt CreateIndex' {Maybe Text
Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
clientToken :: Maybe Text
$sel:tags:CreateIndex' :: CreateIndex -> Maybe (HashMap Text Text)
$sel:clientToken:CreateIndex' :: CreateIndex -> 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 (HashMap Text Text)
tags
instance Prelude.NFData CreateIndex where
rnf :: CreateIndex -> ()
rnf CreateIndex' {Maybe Text
Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
clientToken :: Maybe Text
$sel:tags:CreateIndex' :: CreateIndex -> Maybe (HashMap Text Text)
$sel:clientToken:CreateIndex' :: CreateIndex -> 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 (HashMap Text Text)
tags
instance Data.ToHeaders CreateIndex where
toHeaders :: CreateIndex -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateIndex where
toJSON :: CreateIndex -> Value
toJSON CreateIndex' {Maybe Text
Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
clientToken :: Maybe Text
$sel:tags:CreateIndex' :: CreateIndex -> Maybe (HashMap Text Text)
$sel:clientToken:CreateIndex' :: CreateIndex -> 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
"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 (HashMap Text Text)
tags
]
)
instance Data.ToPath CreateIndex where
toPath :: CreateIndex -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/CreateIndex"
instance Data.ToQuery CreateIndex where
toQuery :: CreateIndex -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateIndexResponse = CreateIndexResponse'
{
CreateIndexResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
CreateIndexResponse -> Maybe ISO8601
createdAt :: Prelude.Maybe Data.ISO8601,
CreateIndexResponse -> Maybe IndexState
state :: Prelude.Maybe IndexState,
CreateIndexResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateIndexResponse -> CreateIndexResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateIndexResponse -> CreateIndexResponse -> Bool
$c/= :: CreateIndexResponse -> CreateIndexResponse -> Bool
== :: CreateIndexResponse -> CreateIndexResponse -> Bool
$c== :: CreateIndexResponse -> CreateIndexResponse -> Bool
Prelude.Eq, ReadPrec [CreateIndexResponse]
ReadPrec CreateIndexResponse
Int -> ReadS CreateIndexResponse
ReadS [CreateIndexResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateIndexResponse]
$creadListPrec :: ReadPrec [CreateIndexResponse]
readPrec :: ReadPrec CreateIndexResponse
$creadPrec :: ReadPrec CreateIndexResponse
readList :: ReadS [CreateIndexResponse]
$creadList :: ReadS [CreateIndexResponse]
readsPrec :: Int -> ReadS CreateIndexResponse
$creadsPrec :: Int -> ReadS CreateIndexResponse
Prelude.Read, Int -> CreateIndexResponse -> ShowS
[CreateIndexResponse] -> ShowS
CreateIndexResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateIndexResponse] -> ShowS
$cshowList :: [CreateIndexResponse] -> ShowS
show :: CreateIndexResponse -> String
$cshow :: CreateIndexResponse -> String
showsPrec :: Int -> CreateIndexResponse -> ShowS
$cshowsPrec :: Int -> CreateIndexResponse -> ShowS
Prelude.Show, forall x. Rep CreateIndexResponse x -> CreateIndexResponse
forall x. CreateIndexResponse -> Rep CreateIndexResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateIndexResponse x -> CreateIndexResponse
$cfrom :: forall x. CreateIndexResponse -> Rep CreateIndexResponse x
Prelude.Generic)
newCreateIndexResponse ::
Prelude.Int ->
CreateIndexResponse
newCreateIndexResponse :: Int -> CreateIndexResponse
newCreateIndexResponse Int
pHttpStatus_ =
CreateIndexResponse'
{ $sel:arn:CreateIndexResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
$sel:createdAt:CreateIndexResponse' :: Maybe ISO8601
createdAt = forall a. Maybe a
Prelude.Nothing,
$sel:state:CreateIndexResponse' :: Maybe IndexState
state = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateIndexResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createIndexResponse_arn :: Lens.Lens' CreateIndexResponse (Prelude.Maybe Prelude.Text)
createIndexResponse_arn :: Lens' CreateIndexResponse (Maybe Text)
createIndexResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIndexResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:CreateIndexResponse' :: CreateIndexResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: CreateIndexResponse
s@CreateIndexResponse' {} Maybe Text
a -> CreateIndexResponse
s {$sel:arn:CreateIndexResponse' :: Maybe Text
arn = Maybe Text
a} :: CreateIndexResponse)
createIndexResponse_createdAt :: Lens.Lens' CreateIndexResponse (Prelude.Maybe Prelude.UTCTime)
createIndexResponse_createdAt :: Lens' CreateIndexResponse (Maybe UTCTime)
createIndexResponse_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIndexResponse' {Maybe ISO8601
createdAt :: Maybe ISO8601
$sel:createdAt:CreateIndexResponse' :: CreateIndexResponse -> Maybe ISO8601
createdAt} -> Maybe ISO8601
createdAt) (\s :: CreateIndexResponse
s@CreateIndexResponse' {} Maybe ISO8601
a -> CreateIndexResponse
s {$sel:createdAt:CreateIndexResponse' :: Maybe ISO8601
createdAt = Maybe ISO8601
a} :: CreateIndexResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time
createIndexResponse_state :: Lens.Lens' CreateIndexResponse (Prelude.Maybe IndexState)
createIndexResponse_state :: Lens' CreateIndexResponse (Maybe IndexState)
createIndexResponse_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIndexResponse' {Maybe IndexState
state :: Maybe IndexState
$sel:state:CreateIndexResponse' :: CreateIndexResponse -> Maybe IndexState
state} -> Maybe IndexState
state) (\s :: CreateIndexResponse
s@CreateIndexResponse' {} Maybe IndexState
a -> CreateIndexResponse
s {$sel:state:CreateIndexResponse' :: Maybe IndexState
state = Maybe IndexState
a} :: CreateIndexResponse)
createIndexResponse_httpStatus :: Lens.Lens' CreateIndexResponse Prelude.Int
createIndexResponse_httpStatus :: Lens' CreateIndexResponse Int
createIndexResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIndexResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateIndexResponse' :: CreateIndexResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateIndexResponse
s@CreateIndexResponse' {} Int
a -> CreateIndexResponse
s {$sel:httpStatus:CreateIndexResponse' :: Int
httpStatus = Int
a} :: CreateIndexResponse)
instance Prelude.NFData CreateIndexResponse where
rnf :: CreateIndexResponse -> ()
rnf CreateIndexResponse' {Int
Maybe Text
Maybe ISO8601
Maybe IndexState
httpStatus :: Int
state :: Maybe IndexState
createdAt :: Maybe ISO8601
arn :: Maybe Text
$sel:httpStatus:CreateIndexResponse' :: CreateIndexResponse -> Int
$sel:state:CreateIndexResponse' :: CreateIndexResponse -> Maybe IndexState
$sel:createdAt:CreateIndexResponse' :: CreateIndexResponse -> Maybe ISO8601
$sel:arn:CreateIndexResponse' :: CreateIndexResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
createdAt
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IndexState
state
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus