{-# 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.ManagedBlockChain.CreateAccessor
(
CreateAccessor (..),
newCreateAccessor,
createAccessor_clientRequestToken,
createAccessor_accessorType,
CreateAccessorResponse (..),
newCreateAccessorResponse,
createAccessorResponse_accessorId,
createAccessorResponse_billingToken,
createAccessorResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ManagedBlockChain.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateAccessor = CreateAccessor'
{
CreateAccessor -> Text
clientRequestToken :: Prelude.Text,
CreateAccessor -> AccessorType
accessorType :: AccessorType
}
deriving (CreateAccessor -> CreateAccessor -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAccessor -> CreateAccessor -> Bool
$c/= :: CreateAccessor -> CreateAccessor -> Bool
== :: CreateAccessor -> CreateAccessor -> Bool
$c== :: CreateAccessor -> CreateAccessor -> Bool
Prelude.Eq, ReadPrec [CreateAccessor]
ReadPrec CreateAccessor
Int -> ReadS CreateAccessor
ReadS [CreateAccessor]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateAccessor]
$creadListPrec :: ReadPrec [CreateAccessor]
readPrec :: ReadPrec CreateAccessor
$creadPrec :: ReadPrec CreateAccessor
readList :: ReadS [CreateAccessor]
$creadList :: ReadS [CreateAccessor]
readsPrec :: Int -> ReadS CreateAccessor
$creadsPrec :: Int -> ReadS CreateAccessor
Prelude.Read, Int -> CreateAccessor -> ShowS
[CreateAccessor] -> ShowS
CreateAccessor -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAccessor] -> ShowS
$cshowList :: [CreateAccessor] -> ShowS
show :: CreateAccessor -> String
$cshow :: CreateAccessor -> String
showsPrec :: Int -> CreateAccessor -> ShowS
$cshowsPrec :: Int -> CreateAccessor -> ShowS
Prelude.Show, forall x. Rep CreateAccessor x -> CreateAccessor
forall x. CreateAccessor -> Rep CreateAccessor x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateAccessor x -> CreateAccessor
$cfrom :: forall x. CreateAccessor -> Rep CreateAccessor x
Prelude.Generic)
newCreateAccessor ::
Prelude.Text ->
AccessorType ->
CreateAccessor
newCreateAccessor :: Text -> AccessorType -> CreateAccessor
newCreateAccessor Text
pClientRequestToken_ AccessorType
pAccessorType_ =
CreateAccessor'
{ $sel:clientRequestToken:CreateAccessor' :: Text
clientRequestToken =
Text
pClientRequestToken_,
$sel:accessorType:CreateAccessor' :: AccessorType
accessorType = AccessorType
pAccessorType_
}
createAccessor_clientRequestToken :: Lens.Lens' CreateAccessor Prelude.Text
createAccessor_clientRequestToken :: Lens' CreateAccessor Text
createAccessor_clientRequestToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAccessor' {Text
clientRequestToken :: Text
$sel:clientRequestToken:CreateAccessor' :: CreateAccessor -> Text
clientRequestToken} -> Text
clientRequestToken) (\s :: CreateAccessor
s@CreateAccessor' {} Text
a -> CreateAccessor
s {$sel:clientRequestToken:CreateAccessor' :: Text
clientRequestToken = Text
a} :: CreateAccessor)
createAccessor_accessorType :: Lens.Lens' CreateAccessor AccessorType
createAccessor_accessorType :: Lens' CreateAccessor AccessorType
createAccessor_accessorType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAccessor' {AccessorType
accessorType :: AccessorType
$sel:accessorType:CreateAccessor' :: CreateAccessor -> AccessorType
accessorType} -> AccessorType
accessorType) (\s :: CreateAccessor
s@CreateAccessor' {} AccessorType
a -> CreateAccessor
s {$sel:accessorType:CreateAccessor' :: AccessorType
accessorType = AccessorType
a} :: CreateAccessor)
instance Core.AWSRequest CreateAccessor where
type
AWSResponse CreateAccessor =
CreateAccessorResponse
request :: (Service -> Service) -> CreateAccessor -> Request CreateAccessor
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 CreateAccessor
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateAccessor)))
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 Text -> Int -> CreateAccessorResponse
CreateAccessorResponse'
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
"AccessorId")
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
"BillingToken")
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 CreateAccessor where
hashWithSalt :: Int -> CreateAccessor -> Int
hashWithSalt Int
_salt CreateAccessor' {Text
AccessorType
accessorType :: AccessorType
clientRequestToken :: Text
$sel:accessorType:CreateAccessor' :: CreateAccessor -> AccessorType
$sel:clientRequestToken:CreateAccessor' :: CreateAccessor -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
clientRequestToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` AccessorType
accessorType
instance Prelude.NFData CreateAccessor where
rnf :: CreateAccessor -> ()
rnf CreateAccessor' {Text
AccessorType
accessorType :: AccessorType
clientRequestToken :: Text
$sel:accessorType:CreateAccessor' :: CreateAccessor -> AccessorType
$sel:clientRequestToken:CreateAccessor' :: CreateAccessor -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
clientRequestToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AccessorType
accessorType
instance Data.ToHeaders CreateAccessor where
toHeaders :: CreateAccessor -> 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 CreateAccessor where
toJSON :: CreateAccessor -> Value
toJSON CreateAccessor' {Text
AccessorType
accessorType :: AccessorType
clientRequestToken :: Text
$sel:accessorType:CreateAccessor' :: CreateAccessor -> AccessorType
$sel:clientRequestToken:CreateAccessor' :: CreateAccessor -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"ClientRequestToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
clientRequestToken),
forall a. a -> Maybe a
Prelude.Just (Key
"AccessorType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= AccessorType
accessorType)
]
)
instance Data.ToPath CreateAccessor where
toPath :: CreateAccessor -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/accessors"
instance Data.ToQuery CreateAccessor where
toQuery :: CreateAccessor -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateAccessorResponse = CreateAccessorResponse'
{
CreateAccessorResponse -> Maybe Text
accessorId :: Prelude.Maybe Prelude.Text,
CreateAccessorResponse -> Maybe Text
billingToken :: Prelude.Maybe Prelude.Text,
CreateAccessorResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateAccessorResponse -> CreateAccessorResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAccessorResponse -> CreateAccessorResponse -> Bool
$c/= :: CreateAccessorResponse -> CreateAccessorResponse -> Bool
== :: CreateAccessorResponse -> CreateAccessorResponse -> Bool
$c== :: CreateAccessorResponse -> CreateAccessorResponse -> Bool
Prelude.Eq, ReadPrec [CreateAccessorResponse]
ReadPrec CreateAccessorResponse
Int -> ReadS CreateAccessorResponse
ReadS [CreateAccessorResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateAccessorResponse]
$creadListPrec :: ReadPrec [CreateAccessorResponse]
readPrec :: ReadPrec CreateAccessorResponse
$creadPrec :: ReadPrec CreateAccessorResponse
readList :: ReadS [CreateAccessorResponse]
$creadList :: ReadS [CreateAccessorResponse]
readsPrec :: Int -> ReadS CreateAccessorResponse
$creadsPrec :: Int -> ReadS CreateAccessorResponse
Prelude.Read, Int -> CreateAccessorResponse -> ShowS
[CreateAccessorResponse] -> ShowS
CreateAccessorResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAccessorResponse] -> ShowS
$cshowList :: [CreateAccessorResponse] -> ShowS
show :: CreateAccessorResponse -> String
$cshow :: CreateAccessorResponse -> String
showsPrec :: Int -> CreateAccessorResponse -> ShowS
$cshowsPrec :: Int -> CreateAccessorResponse -> ShowS
Prelude.Show, forall x. Rep CreateAccessorResponse x -> CreateAccessorResponse
forall x. CreateAccessorResponse -> Rep CreateAccessorResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateAccessorResponse x -> CreateAccessorResponse
$cfrom :: forall x. CreateAccessorResponse -> Rep CreateAccessorResponse x
Prelude.Generic)
newCreateAccessorResponse ::
Prelude.Int ->
CreateAccessorResponse
newCreateAccessorResponse :: Int -> CreateAccessorResponse
newCreateAccessorResponse Int
pHttpStatus_ =
CreateAccessorResponse'
{ $sel:accessorId:CreateAccessorResponse' :: Maybe Text
accessorId =
forall a. Maybe a
Prelude.Nothing,
$sel:billingToken:CreateAccessorResponse' :: Maybe Text
billingToken = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateAccessorResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createAccessorResponse_accessorId :: Lens.Lens' CreateAccessorResponse (Prelude.Maybe Prelude.Text)
createAccessorResponse_accessorId :: Lens' CreateAccessorResponse (Maybe Text)
createAccessorResponse_accessorId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAccessorResponse' {Maybe Text
accessorId :: Maybe Text
$sel:accessorId:CreateAccessorResponse' :: CreateAccessorResponse -> Maybe Text
accessorId} -> Maybe Text
accessorId) (\s :: CreateAccessorResponse
s@CreateAccessorResponse' {} Maybe Text
a -> CreateAccessorResponse
s {$sel:accessorId:CreateAccessorResponse' :: Maybe Text
accessorId = Maybe Text
a} :: CreateAccessorResponse)
createAccessorResponse_billingToken :: Lens.Lens' CreateAccessorResponse (Prelude.Maybe Prelude.Text)
createAccessorResponse_billingToken :: Lens' CreateAccessorResponse (Maybe Text)
createAccessorResponse_billingToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAccessorResponse' {Maybe Text
billingToken :: Maybe Text
$sel:billingToken:CreateAccessorResponse' :: CreateAccessorResponse -> Maybe Text
billingToken} -> Maybe Text
billingToken) (\s :: CreateAccessorResponse
s@CreateAccessorResponse' {} Maybe Text
a -> CreateAccessorResponse
s {$sel:billingToken:CreateAccessorResponse' :: Maybe Text
billingToken = Maybe Text
a} :: CreateAccessorResponse)
createAccessorResponse_httpStatus :: Lens.Lens' CreateAccessorResponse Prelude.Int
createAccessorResponse_httpStatus :: Lens' CreateAccessorResponse Int
createAccessorResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAccessorResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateAccessorResponse' :: CreateAccessorResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateAccessorResponse
s@CreateAccessorResponse' {} Int
a -> CreateAccessorResponse
s {$sel:httpStatus:CreateAccessorResponse' :: Int
httpStatus = Int
a} :: CreateAccessorResponse)
instance Prelude.NFData CreateAccessorResponse where
rnf :: CreateAccessorResponse -> ()
rnf CreateAccessorResponse' {Int
Maybe Text
httpStatus :: Int
billingToken :: Maybe Text
accessorId :: Maybe Text
$sel:httpStatus:CreateAccessorResponse' :: CreateAccessorResponse -> Int
$sel:billingToken:CreateAccessorResponse' :: CreateAccessorResponse -> Maybe Text
$sel:accessorId:CreateAccessorResponse' :: CreateAccessorResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
accessorId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
billingToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus