{-# 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.Route53RecoveryControlConfig.CreateControlPanel
(
CreateControlPanel (..),
newCreateControlPanel,
createControlPanel_clientToken,
createControlPanel_tags,
createControlPanel_clusterArn,
createControlPanel_controlPanelName,
CreateControlPanelResponse (..),
newCreateControlPanelResponse,
createControlPanelResponse_controlPanel,
createControlPanelResponse_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 qualified Amazonka.Response as Response
import Amazonka.Route53RecoveryControlConfig.Types
data CreateControlPanel = CreateControlPanel'
{
CreateControlPanel -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
CreateControlPanel -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
CreateControlPanel -> Text
clusterArn :: Prelude.Text,
CreateControlPanel -> Text
controlPanelName :: Prelude.Text
}
deriving (CreateControlPanel -> CreateControlPanel -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateControlPanel -> CreateControlPanel -> Bool
$c/= :: CreateControlPanel -> CreateControlPanel -> Bool
== :: CreateControlPanel -> CreateControlPanel -> Bool
$c== :: CreateControlPanel -> CreateControlPanel -> Bool
Prelude.Eq, ReadPrec [CreateControlPanel]
ReadPrec CreateControlPanel
Int -> ReadS CreateControlPanel
ReadS [CreateControlPanel]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateControlPanel]
$creadListPrec :: ReadPrec [CreateControlPanel]
readPrec :: ReadPrec CreateControlPanel
$creadPrec :: ReadPrec CreateControlPanel
readList :: ReadS [CreateControlPanel]
$creadList :: ReadS [CreateControlPanel]
readsPrec :: Int -> ReadS CreateControlPanel
$creadsPrec :: Int -> ReadS CreateControlPanel
Prelude.Read, Int -> CreateControlPanel -> ShowS
[CreateControlPanel] -> ShowS
CreateControlPanel -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateControlPanel] -> ShowS
$cshowList :: [CreateControlPanel] -> ShowS
show :: CreateControlPanel -> String
$cshow :: CreateControlPanel -> String
showsPrec :: Int -> CreateControlPanel -> ShowS
$cshowsPrec :: Int -> CreateControlPanel -> ShowS
Prelude.Show, forall x. Rep CreateControlPanel x -> CreateControlPanel
forall x. CreateControlPanel -> Rep CreateControlPanel x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateControlPanel x -> CreateControlPanel
$cfrom :: forall x. CreateControlPanel -> Rep CreateControlPanel x
Prelude.Generic)
newCreateControlPanel ::
Prelude.Text ->
Prelude.Text ->
CreateControlPanel
newCreateControlPanel :: Text -> Text -> CreateControlPanel
newCreateControlPanel Text
pClusterArn_ Text
pControlPanelName_ =
CreateControlPanel'
{ $sel:clientToken:CreateControlPanel' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateControlPanel' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
$sel:clusterArn:CreateControlPanel' :: Text
clusterArn = Text
pClusterArn_,
$sel:controlPanelName:CreateControlPanel' :: Text
controlPanelName = Text
pControlPanelName_
}
createControlPanel_clientToken :: Lens.Lens' CreateControlPanel (Prelude.Maybe Prelude.Text)
createControlPanel_clientToken :: Lens' CreateControlPanel (Maybe Text)
createControlPanel_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateControlPanel' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateControlPanel' :: CreateControlPanel -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateControlPanel
s@CreateControlPanel' {} Maybe Text
a -> CreateControlPanel
s {$sel:clientToken:CreateControlPanel' :: Maybe Text
clientToken = Maybe Text
a} :: CreateControlPanel)
createControlPanel_tags :: Lens.Lens' CreateControlPanel (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createControlPanel_tags :: Lens' CreateControlPanel (Maybe (HashMap Text Text))
createControlPanel_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateControlPanel' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreateControlPanel' :: CreateControlPanel -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreateControlPanel
s@CreateControlPanel' {} Maybe (HashMap Text Text)
a -> CreateControlPanel
s {$sel:tags:CreateControlPanel' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreateControlPanel) 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
createControlPanel_clusterArn :: Lens.Lens' CreateControlPanel Prelude.Text
createControlPanel_clusterArn :: Lens' CreateControlPanel Text
createControlPanel_clusterArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateControlPanel' {Text
clusterArn :: Text
$sel:clusterArn:CreateControlPanel' :: CreateControlPanel -> Text
clusterArn} -> Text
clusterArn) (\s :: CreateControlPanel
s@CreateControlPanel' {} Text
a -> CreateControlPanel
s {$sel:clusterArn:CreateControlPanel' :: Text
clusterArn = Text
a} :: CreateControlPanel)
createControlPanel_controlPanelName :: Lens.Lens' CreateControlPanel Prelude.Text
createControlPanel_controlPanelName :: Lens' CreateControlPanel Text
createControlPanel_controlPanelName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateControlPanel' {Text
controlPanelName :: Text
$sel:controlPanelName:CreateControlPanel' :: CreateControlPanel -> Text
controlPanelName} -> Text
controlPanelName) (\s :: CreateControlPanel
s@CreateControlPanel' {} Text
a -> CreateControlPanel
s {$sel:controlPanelName:CreateControlPanel' :: Text
controlPanelName = Text
a} :: CreateControlPanel)
instance Core.AWSRequest CreateControlPanel where
type
AWSResponse CreateControlPanel =
CreateControlPanelResponse
request :: (Service -> Service)
-> CreateControlPanel -> Request CreateControlPanel
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 CreateControlPanel
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateControlPanel)))
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 ControlPanel -> Int -> CreateControlPanelResponse
CreateControlPanelResponse'
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
"ControlPanel")
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 CreateControlPanel where
hashWithSalt :: Int -> CreateControlPanel -> Int
hashWithSalt Int
_salt CreateControlPanel' {Maybe Text
Maybe (HashMap Text Text)
Text
controlPanelName :: Text
clusterArn :: Text
tags :: Maybe (HashMap Text Text)
clientToken :: Maybe Text
$sel:controlPanelName:CreateControlPanel' :: CreateControlPanel -> Text
$sel:clusterArn:CreateControlPanel' :: CreateControlPanel -> Text
$sel:tags:CreateControlPanel' :: CreateControlPanel -> Maybe (HashMap Text Text)
$sel:clientToken:CreateControlPanel' :: CreateControlPanel -> 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
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
clusterArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
controlPanelName
instance Prelude.NFData CreateControlPanel where
rnf :: CreateControlPanel -> ()
rnf CreateControlPanel' {Maybe Text
Maybe (HashMap Text Text)
Text
controlPanelName :: Text
clusterArn :: Text
tags :: Maybe (HashMap Text Text)
clientToken :: Maybe Text
$sel:controlPanelName:CreateControlPanel' :: CreateControlPanel -> Text
$sel:clusterArn:CreateControlPanel' :: CreateControlPanel -> Text
$sel:tags:CreateControlPanel' :: CreateControlPanel -> Maybe (HashMap Text Text)
$sel:clientToken:CreateControlPanel' :: CreateControlPanel -> 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
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
clusterArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
controlPanelName
instance Data.ToHeaders CreateControlPanel where
toHeaders :: CreateControlPanel -> 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 CreateControlPanel where
toJSON :: CreateControlPanel -> Value
toJSON CreateControlPanel' {Maybe Text
Maybe (HashMap Text Text)
Text
controlPanelName :: Text
clusterArn :: Text
tags :: Maybe (HashMap Text Text)
clientToken :: Maybe Text
$sel:controlPanelName:CreateControlPanel' :: CreateControlPanel -> Text
$sel:clusterArn:CreateControlPanel' :: CreateControlPanel -> Text
$sel:tags:CreateControlPanel' :: CreateControlPanel -> Maybe (HashMap Text Text)
$sel:clientToken:CreateControlPanel' :: CreateControlPanel -> 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,
forall a. a -> Maybe a
Prelude.Just (Key
"ClusterArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
clusterArn),
forall a. a -> Maybe a
Prelude.Just
(Key
"ControlPanelName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
controlPanelName)
]
)
instance Data.ToPath CreateControlPanel where
toPath :: CreateControlPanel -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/controlpanel"
instance Data.ToQuery CreateControlPanel where
toQuery :: CreateControlPanel -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateControlPanelResponse = CreateControlPanelResponse'
{
CreateControlPanelResponse -> Maybe ControlPanel
controlPanel :: Prelude.Maybe ControlPanel,
CreateControlPanelResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateControlPanelResponse -> CreateControlPanelResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateControlPanelResponse -> CreateControlPanelResponse -> Bool
$c/= :: CreateControlPanelResponse -> CreateControlPanelResponse -> Bool
== :: CreateControlPanelResponse -> CreateControlPanelResponse -> Bool
$c== :: CreateControlPanelResponse -> CreateControlPanelResponse -> Bool
Prelude.Eq, ReadPrec [CreateControlPanelResponse]
ReadPrec CreateControlPanelResponse
Int -> ReadS CreateControlPanelResponse
ReadS [CreateControlPanelResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateControlPanelResponse]
$creadListPrec :: ReadPrec [CreateControlPanelResponse]
readPrec :: ReadPrec CreateControlPanelResponse
$creadPrec :: ReadPrec CreateControlPanelResponse
readList :: ReadS [CreateControlPanelResponse]
$creadList :: ReadS [CreateControlPanelResponse]
readsPrec :: Int -> ReadS CreateControlPanelResponse
$creadsPrec :: Int -> ReadS CreateControlPanelResponse
Prelude.Read, Int -> CreateControlPanelResponse -> ShowS
[CreateControlPanelResponse] -> ShowS
CreateControlPanelResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateControlPanelResponse] -> ShowS
$cshowList :: [CreateControlPanelResponse] -> ShowS
show :: CreateControlPanelResponse -> String
$cshow :: CreateControlPanelResponse -> String
showsPrec :: Int -> CreateControlPanelResponse -> ShowS
$cshowsPrec :: Int -> CreateControlPanelResponse -> ShowS
Prelude.Show, forall x.
Rep CreateControlPanelResponse x -> CreateControlPanelResponse
forall x.
CreateControlPanelResponse -> Rep CreateControlPanelResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateControlPanelResponse x -> CreateControlPanelResponse
$cfrom :: forall x.
CreateControlPanelResponse -> Rep CreateControlPanelResponse x
Prelude.Generic)
newCreateControlPanelResponse ::
Prelude.Int ->
CreateControlPanelResponse
newCreateControlPanelResponse :: Int -> CreateControlPanelResponse
newCreateControlPanelResponse Int
pHttpStatus_ =
CreateControlPanelResponse'
{ $sel:controlPanel:CreateControlPanelResponse' :: Maybe ControlPanel
controlPanel =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateControlPanelResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createControlPanelResponse_controlPanel :: Lens.Lens' CreateControlPanelResponse (Prelude.Maybe ControlPanel)
createControlPanelResponse_controlPanel :: Lens' CreateControlPanelResponse (Maybe ControlPanel)
createControlPanelResponse_controlPanel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateControlPanelResponse' {Maybe ControlPanel
controlPanel :: Maybe ControlPanel
$sel:controlPanel:CreateControlPanelResponse' :: CreateControlPanelResponse -> Maybe ControlPanel
controlPanel} -> Maybe ControlPanel
controlPanel) (\s :: CreateControlPanelResponse
s@CreateControlPanelResponse' {} Maybe ControlPanel
a -> CreateControlPanelResponse
s {$sel:controlPanel:CreateControlPanelResponse' :: Maybe ControlPanel
controlPanel = Maybe ControlPanel
a} :: CreateControlPanelResponse)
createControlPanelResponse_httpStatus :: Lens.Lens' CreateControlPanelResponse Prelude.Int
createControlPanelResponse_httpStatus :: Lens' CreateControlPanelResponse Int
createControlPanelResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateControlPanelResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateControlPanelResponse' :: CreateControlPanelResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateControlPanelResponse
s@CreateControlPanelResponse' {} Int
a -> CreateControlPanelResponse
s {$sel:httpStatus:CreateControlPanelResponse' :: Int
httpStatus = Int
a} :: CreateControlPanelResponse)
instance Prelude.NFData CreateControlPanelResponse where
rnf :: CreateControlPanelResponse -> ()
rnf CreateControlPanelResponse' {Int
Maybe ControlPanel
httpStatus :: Int
controlPanel :: Maybe ControlPanel
$sel:httpStatus:CreateControlPanelResponse' :: CreateControlPanelResponse -> Int
$sel:controlPanel:CreateControlPanelResponse' :: CreateControlPanelResponse -> Maybe ControlPanel
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ControlPanel
controlPanel
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus