{-# 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.CloudHSMV2.InitializeCluster
(
InitializeCluster (..),
newInitializeCluster,
initializeCluster_clusterId,
initializeCluster_signedCert,
initializeCluster_trustAnchor,
InitializeClusterResponse (..),
newInitializeClusterResponse,
initializeClusterResponse_state,
initializeClusterResponse_stateMessage,
initializeClusterResponse_httpStatus,
)
where
import Amazonka.CloudHSMV2.Types
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 qualified Amazonka.Response as Response
data InitializeCluster = InitializeCluster'
{
InitializeCluster -> Text
clusterId :: Prelude.Text,
InitializeCluster -> Text
signedCert :: Prelude.Text,
InitializeCluster -> Text
trustAnchor :: Prelude.Text
}
deriving (InitializeCluster -> InitializeCluster -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InitializeCluster -> InitializeCluster -> Bool
$c/= :: InitializeCluster -> InitializeCluster -> Bool
== :: InitializeCluster -> InitializeCluster -> Bool
$c== :: InitializeCluster -> InitializeCluster -> Bool
Prelude.Eq, ReadPrec [InitializeCluster]
ReadPrec InitializeCluster
Int -> ReadS InitializeCluster
ReadS [InitializeCluster]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InitializeCluster]
$creadListPrec :: ReadPrec [InitializeCluster]
readPrec :: ReadPrec InitializeCluster
$creadPrec :: ReadPrec InitializeCluster
readList :: ReadS [InitializeCluster]
$creadList :: ReadS [InitializeCluster]
readsPrec :: Int -> ReadS InitializeCluster
$creadsPrec :: Int -> ReadS InitializeCluster
Prelude.Read, Int -> InitializeCluster -> ShowS
[InitializeCluster] -> ShowS
InitializeCluster -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InitializeCluster] -> ShowS
$cshowList :: [InitializeCluster] -> ShowS
show :: InitializeCluster -> String
$cshow :: InitializeCluster -> String
showsPrec :: Int -> InitializeCluster -> ShowS
$cshowsPrec :: Int -> InitializeCluster -> ShowS
Prelude.Show, forall x. Rep InitializeCluster x -> InitializeCluster
forall x. InitializeCluster -> Rep InitializeCluster x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InitializeCluster x -> InitializeCluster
$cfrom :: forall x. InitializeCluster -> Rep InitializeCluster x
Prelude.Generic)
newInitializeCluster ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
InitializeCluster
newInitializeCluster :: Text -> Text -> Text -> InitializeCluster
newInitializeCluster
Text
pClusterId_
Text
pSignedCert_
Text
pTrustAnchor_ =
InitializeCluster'
{ $sel:clusterId:InitializeCluster' :: Text
clusterId = Text
pClusterId_,
$sel:signedCert:InitializeCluster' :: Text
signedCert = Text
pSignedCert_,
$sel:trustAnchor:InitializeCluster' :: Text
trustAnchor = Text
pTrustAnchor_
}
initializeCluster_clusterId :: Lens.Lens' InitializeCluster Prelude.Text
initializeCluster_clusterId :: Lens' InitializeCluster Text
initializeCluster_clusterId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitializeCluster' {Text
clusterId :: Text
$sel:clusterId:InitializeCluster' :: InitializeCluster -> Text
clusterId} -> Text
clusterId) (\s :: InitializeCluster
s@InitializeCluster' {} Text
a -> InitializeCluster
s {$sel:clusterId:InitializeCluster' :: Text
clusterId = Text
a} :: InitializeCluster)
initializeCluster_signedCert :: Lens.Lens' InitializeCluster Prelude.Text
initializeCluster_signedCert :: Lens' InitializeCluster Text
initializeCluster_signedCert = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitializeCluster' {Text
signedCert :: Text
$sel:signedCert:InitializeCluster' :: InitializeCluster -> Text
signedCert} -> Text
signedCert) (\s :: InitializeCluster
s@InitializeCluster' {} Text
a -> InitializeCluster
s {$sel:signedCert:InitializeCluster' :: Text
signedCert = Text
a} :: InitializeCluster)
initializeCluster_trustAnchor :: Lens.Lens' InitializeCluster Prelude.Text
initializeCluster_trustAnchor :: Lens' InitializeCluster Text
initializeCluster_trustAnchor = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitializeCluster' {Text
trustAnchor :: Text
$sel:trustAnchor:InitializeCluster' :: InitializeCluster -> Text
trustAnchor} -> Text
trustAnchor) (\s :: InitializeCluster
s@InitializeCluster' {} Text
a -> InitializeCluster
s {$sel:trustAnchor:InitializeCluster' :: Text
trustAnchor = Text
a} :: InitializeCluster)
instance Core.AWSRequest InitializeCluster where
type
AWSResponse InitializeCluster =
InitializeClusterResponse
request :: (Service -> Service)
-> InitializeCluster -> Request InitializeCluster
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 InitializeCluster
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse InitializeCluster)))
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 ClusterState
-> Maybe Text -> Int -> InitializeClusterResponse
InitializeClusterResponse'
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
"State")
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
"StateMessage")
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 InitializeCluster where
hashWithSalt :: Int -> InitializeCluster -> Int
hashWithSalt Int
_salt InitializeCluster' {Text
trustAnchor :: Text
signedCert :: Text
clusterId :: Text
$sel:trustAnchor:InitializeCluster' :: InitializeCluster -> Text
$sel:signedCert:InitializeCluster' :: InitializeCluster -> Text
$sel:clusterId:InitializeCluster' :: InitializeCluster -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
clusterId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
signedCert
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
trustAnchor
instance Prelude.NFData InitializeCluster where
rnf :: InitializeCluster -> ()
rnf InitializeCluster' {Text
trustAnchor :: Text
signedCert :: Text
clusterId :: Text
$sel:trustAnchor:InitializeCluster' :: InitializeCluster -> Text
$sel:signedCert:InitializeCluster' :: InitializeCluster -> Text
$sel:clusterId:InitializeCluster' :: InitializeCluster -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
clusterId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
signedCert
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
trustAnchor
instance Data.ToHeaders InitializeCluster where
toHeaders :: InitializeCluster -> 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
"BaldrApiService.InitializeCluster" ::
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 InitializeCluster where
toJSON :: InitializeCluster -> Value
toJSON InitializeCluster' {Text
trustAnchor :: Text
signedCert :: Text
clusterId :: Text
$sel:trustAnchor:InitializeCluster' :: InitializeCluster -> Text
$sel:signedCert:InitializeCluster' :: InitializeCluster -> Text
$sel:clusterId:InitializeCluster' :: InitializeCluster -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"ClusterId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
clusterId),
forall a. a -> Maybe a
Prelude.Just (Key
"SignedCert" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
signedCert),
forall a. a -> Maybe a
Prelude.Just (Key
"TrustAnchor" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
trustAnchor)
]
)
instance Data.ToPath InitializeCluster where
toPath :: InitializeCluster -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery InitializeCluster where
toQuery :: InitializeCluster -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data InitializeClusterResponse = InitializeClusterResponse'
{
InitializeClusterResponse -> Maybe ClusterState
state :: Prelude.Maybe ClusterState,
InitializeClusterResponse -> Maybe Text
stateMessage :: Prelude.Maybe Prelude.Text,
InitializeClusterResponse -> Int
httpStatus :: Prelude.Int
}
deriving (InitializeClusterResponse -> InitializeClusterResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InitializeClusterResponse -> InitializeClusterResponse -> Bool
$c/= :: InitializeClusterResponse -> InitializeClusterResponse -> Bool
== :: InitializeClusterResponse -> InitializeClusterResponse -> Bool
$c== :: InitializeClusterResponse -> InitializeClusterResponse -> Bool
Prelude.Eq, ReadPrec [InitializeClusterResponse]
ReadPrec InitializeClusterResponse
Int -> ReadS InitializeClusterResponse
ReadS [InitializeClusterResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InitializeClusterResponse]
$creadListPrec :: ReadPrec [InitializeClusterResponse]
readPrec :: ReadPrec InitializeClusterResponse
$creadPrec :: ReadPrec InitializeClusterResponse
readList :: ReadS [InitializeClusterResponse]
$creadList :: ReadS [InitializeClusterResponse]
readsPrec :: Int -> ReadS InitializeClusterResponse
$creadsPrec :: Int -> ReadS InitializeClusterResponse
Prelude.Read, Int -> InitializeClusterResponse -> ShowS
[InitializeClusterResponse] -> ShowS
InitializeClusterResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InitializeClusterResponse] -> ShowS
$cshowList :: [InitializeClusterResponse] -> ShowS
show :: InitializeClusterResponse -> String
$cshow :: InitializeClusterResponse -> String
showsPrec :: Int -> InitializeClusterResponse -> ShowS
$cshowsPrec :: Int -> InitializeClusterResponse -> ShowS
Prelude.Show, forall x.
Rep InitializeClusterResponse x -> InitializeClusterResponse
forall x.
InitializeClusterResponse -> Rep InitializeClusterResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep InitializeClusterResponse x -> InitializeClusterResponse
$cfrom :: forall x.
InitializeClusterResponse -> Rep InitializeClusterResponse x
Prelude.Generic)
newInitializeClusterResponse ::
Prelude.Int ->
InitializeClusterResponse
newInitializeClusterResponse :: Int -> InitializeClusterResponse
newInitializeClusterResponse Int
pHttpStatus_ =
InitializeClusterResponse'
{ $sel:state:InitializeClusterResponse' :: Maybe ClusterState
state = forall a. Maybe a
Prelude.Nothing,
$sel:stateMessage:InitializeClusterResponse' :: Maybe Text
stateMessage = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:InitializeClusterResponse' :: Int
httpStatus = Int
pHttpStatus_
}
initializeClusterResponse_state :: Lens.Lens' InitializeClusterResponse (Prelude.Maybe ClusterState)
initializeClusterResponse_state :: Lens' InitializeClusterResponse (Maybe ClusterState)
initializeClusterResponse_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitializeClusterResponse' {Maybe ClusterState
state :: Maybe ClusterState
$sel:state:InitializeClusterResponse' :: InitializeClusterResponse -> Maybe ClusterState
state} -> Maybe ClusterState
state) (\s :: InitializeClusterResponse
s@InitializeClusterResponse' {} Maybe ClusterState
a -> InitializeClusterResponse
s {$sel:state:InitializeClusterResponse' :: Maybe ClusterState
state = Maybe ClusterState
a} :: InitializeClusterResponse)
initializeClusterResponse_stateMessage :: Lens.Lens' InitializeClusterResponse (Prelude.Maybe Prelude.Text)
initializeClusterResponse_stateMessage :: Lens' InitializeClusterResponse (Maybe Text)
initializeClusterResponse_stateMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitializeClusterResponse' {Maybe Text
stateMessage :: Maybe Text
$sel:stateMessage:InitializeClusterResponse' :: InitializeClusterResponse -> Maybe Text
stateMessage} -> Maybe Text
stateMessage) (\s :: InitializeClusterResponse
s@InitializeClusterResponse' {} Maybe Text
a -> InitializeClusterResponse
s {$sel:stateMessage:InitializeClusterResponse' :: Maybe Text
stateMessage = Maybe Text
a} :: InitializeClusterResponse)
initializeClusterResponse_httpStatus :: Lens.Lens' InitializeClusterResponse Prelude.Int
initializeClusterResponse_httpStatus :: Lens' InitializeClusterResponse Int
initializeClusterResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitializeClusterResponse' {Int
httpStatus :: Int
$sel:httpStatus:InitializeClusterResponse' :: InitializeClusterResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: InitializeClusterResponse
s@InitializeClusterResponse' {} Int
a -> InitializeClusterResponse
s {$sel:httpStatus:InitializeClusterResponse' :: Int
httpStatus = Int
a} :: InitializeClusterResponse)
instance Prelude.NFData InitializeClusterResponse where
rnf :: InitializeClusterResponse -> ()
rnf InitializeClusterResponse' {Int
Maybe Text
Maybe ClusterState
httpStatus :: Int
stateMessage :: Maybe Text
state :: Maybe ClusterState
$sel:httpStatus:InitializeClusterResponse' :: InitializeClusterResponse -> Int
$sel:stateMessage:InitializeClusterResponse' :: InitializeClusterResponse -> Maybe Text
$sel:state:InitializeClusterResponse' :: InitializeClusterResponse -> Maybe ClusterState
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ClusterState
state
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
stateMessage
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus