{-# 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.UpdateControlPanel
(
UpdateControlPanel (..),
newUpdateControlPanel,
updateControlPanel_controlPanelArn,
updateControlPanel_controlPanelName,
UpdateControlPanelResponse (..),
newUpdateControlPanelResponse,
updateControlPanelResponse_controlPanel,
updateControlPanelResponse_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 UpdateControlPanel = UpdateControlPanel'
{
UpdateControlPanel -> Text
controlPanelArn :: Prelude.Text,
UpdateControlPanel -> Text
controlPanelName :: Prelude.Text
}
deriving (UpdateControlPanel -> UpdateControlPanel -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateControlPanel -> UpdateControlPanel -> Bool
$c/= :: UpdateControlPanel -> UpdateControlPanel -> Bool
== :: UpdateControlPanel -> UpdateControlPanel -> Bool
$c== :: UpdateControlPanel -> UpdateControlPanel -> Bool
Prelude.Eq, ReadPrec [UpdateControlPanel]
ReadPrec UpdateControlPanel
Int -> ReadS UpdateControlPanel
ReadS [UpdateControlPanel]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateControlPanel]
$creadListPrec :: ReadPrec [UpdateControlPanel]
readPrec :: ReadPrec UpdateControlPanel
$creadPrec :: ReadPrec UpdateControlPanel
readList :: ReadS [UpdateControlPanel]
$creadList :: ReadS [UpdateControlPanel]
readsPrec :: Int -> ReadS UpdateControlPanel
$creadsPrec :: Int -> ReadS UpdateControlPanel
Prelude.Read, Int -> UpdateControlPanel -> ShowS
[UpdateControlPanel] -> ShowS
UpdateControlPanel -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateControlPanel] -> ShowS
$cshowList :: [UpdateControlPanel] -> ShowS
show :: UpdateControlPanel -> String
$cshow :: UpdateControlPanel -> String
showsPrec :: Int -> UpdateControlPanel -> ShowS
$cshowsPrec :: Int -> UpdateControlPanel -> ShowS
Prelude.Show, forall x. Rep UpdateControlPanel x -> UpdateControlPanel
forall x. UpdateControlPanel -> Rep UpdateControlPanel x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateControlPanel x -> UpdateControlPanel
$cfrom :: forall x. UpdateControlPanel -> Rep UpdateControlPanel x
Prelude.Generic)
newUpdateControlPanel ::
Prelude.Text ->
Prelude.Text ->
UpdateControlPanel
newUpdateControlPanel :: Text -> Text -> UpdateControlPanel
newUpdateControlPanel
Text
pControlPanelArn_
Text
pControlPanelName_ =
UpdateControlPanel'
{ $sel:controlPanelArn:UpdateControlPanel' :: Text
controlPanelArn =
Text
pControlPanelArn_,
$sel:controlPanelName:UpdateControlPanel' :: Text
controlPanelName = Text
pControlPanelName_
}
updateControlPanel_controlPanelArn :: Lens.Lens' UpdateControlPanel Prelude.Text
updateControlPanel_controlPanelArn :: Lens' UpdateControlPanel Text
updateControlPanel_controlPanelArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateControlPanel' {Text
controlPanelArn :: Text
$sel:controlPanelArn:UpdateControlPanel' :: UpdateControlPanel -> Text
controlPanelArn} -> Text
controlPanelArn) (\s :: UpdateControlPanel
s@UpdateControlPanel' {} Text
a -> UpdateControlPanel
s {$sel:controlPanelArn:UpdateControlPanel' :: Text
controlPanelArn = Text
a} :: UpdateControlPanel)
updateControlPanel_controlPanelName :: Lens.Lens' UpdateControlPanel Prelude.Text
updateControlPanel_controlPanelName :: Lens' UpdateControlPanel Text
updateControlPanel_controlPanelName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateControlPanel' {Text
controlPanelName :: Text
$sel:controlPanelName:UpdateControlPanel' :: UpdateControlPanel -> Text
controlPanelName} -> Text
controlPanelName) (\s :: UpdateControlPanel
s@UpdateControlPanel' {} Text
a -> UpdateControlPanel
s {$sel:controlPanelName:UpdateControlPanel' :: Text
controlPanelName = Text
a} :: UpdateControlPanel)
instance Core.AWSRequest UpdateControlPanel where
type
AWSResponse UpdateControlPanel =
UpdateControlPanelResponse
request :: (Service -> Service)
-> UpdateControlPanel -> Request UpdateControlPanel
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateControlPanel
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateControlPanel)))
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 -> UpdateControlPanelResponse
UpdateControlPanelResponse'
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 UpdateControlPanel where
hashWithSalt :: Int -> UpdateControlPanel -> Int
hashWithSalt Int
_salt UpdateControlPanel' {Text
controlPanelName :: Text
controlPanelArn :: Text
$sel:controlPanelName:UpdateControlPanel' :: UpdateControlPanel -> Text
$sel:controlPanelArn:UpdateControlPanel' :: UpdateControlPanel -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
controlPanelArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
controlPanelName
instance Prelude.NFData UpdateControlPanel where
rnf :: UpdateControlPanel -> ()
rnf UpdateControlPanel' {Text
controlPanelName :: Text
controlPanelArn :: Text
$sel:controlPanelName:UpdateControlPanel' :: UpdateControlPanel -> Text
$sel:controlPanelArn:UpdateControlPanel' :: UpdateControlPanel -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
controlPanelArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
controlPanelName
instance Data.ToHeaders UpdateControlPanel where
toHeaders :: UpdateControlPanel -> 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 UpdateControlPanel where
toJSON :: UpdateControlPanel -> Value
toJSON UpdateControlPanel' {Text
controlPanelName :: Text
controlPanelArn :: Text
$sel:controlPanelName:UpdateControlPanel' :: UpdateControlPanel -> Text
$sel:controlPanelArn:UpdateControlPanel' :: UpdateControlPanel -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"ControlPanelArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
controlPanelArn),
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 UpdateControlPanel where
toPath :: UpdateControlPanel -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/controlpanel"
instance Data.ToQuery UpdateControlPanel where
toQuery :: UpdateControlPanel -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateControlPanelResponse = UpdateControlPanelResponse'
{
UpdateControlPanelResponse -> Maybe ControlPanel
controlPanel :: Prelude.Maybe ControlPanel,
UpdateControlPanelResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateControlPanelResponse -> UpdateControlPanelResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateControlPanelResponse -> UpdateControlPanelResponse -> Bool
$c/= :: UpdateControlPanelResponse -> UpdateControlPanelResponse -> Bool
== :: UpdateControlPanelResponse -> UpdateControlPanelResponse -> Bool
$c== :: UpdateControlPanelResponse -> UpdateControlPanelResponse -> Bool
Prelude.Eq, ReadPrec [UpdateControlPanelResponse]
ReadPrec UpdateControlPanelResponse
Int -> ReadS UpdateControlPanelResponse
ReadS [UpdateControlPanelResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateControlPanelResponse]
$creadListPrec :: ReadPrec [UpdateControlPanelResponse]
readPrec :: ReadPrec UpdateControlPanelResponse
$creadPrec :: ReadPrec UpdateControlPanelResponse
readList :: ReadS [UpdateControlPanelResponse]
$creadList :: ReadS [UpdateControlPanelResponse]
readsPrec :: Int -> ReadS UpdateControlPanelResponse
$creadsPrec :: Int -> ReadS UpdateControlPanelResponse
Prelude.Read, Int -> UpdateControlPanelResponse -> ShowS
[UpdateControlPanelResponse] -> ShowS
UpdateControlPanelResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateControlPanelResponse] -> ShowS
$cshowList :: [UpdateControlPanelResponse] -> ShowS
show :: UpdateControlPanelResponse -> String
$cshow :: UpdateControlPanelResponse -> String
showsPrec :: Int -> UpdateControlPanelResponse -> ShowS
$cshowsPrec :: Int -> UpdateControlPanelResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateControlPanelResponse x -> UpdateControlPanelResponse
forall x.
UpdateControlPanelResponse -> Rep UpdateControlPanelResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateControlPanelResponse x -> UpdateControlPanelResponse
$cfrom :: forall x.
UpdateControlPanelResponse -> Rep UpdateControlPanelResponse x
Prelude.Generic)
newUpdateControlPanelResponse ::
Prelude.Int ->
UpdateControlPanelResponse
newUpdateControlPanelResponse :: Int -> UpdateControlPanelResponse
newUpdateControlPanelResponse Int
pHttpStatus_ =
UpdateControlPanelResponse'
{ $sel:controlPanel:UpdateControlPanelResponse' :: Maybe ControlPanel
controlPanel =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:UpdateControlPanelResponse' :: Int
httpStatus = Int
pHttpStatus_
}
updateControlPanelResponse_controlPanel :: Lens.Lens' UpdateControlPanelResponse (Prelude.Maybe ControlPanel)
updateControlPanelResponse_controlPanel :: Lens' UpdateControlPanelResponse (Maybe ControlPanel)
updateControlPanelResponse_controlPanel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateControlPanelResponse' {Maybe ControlPanel
controlPanel :: Maybe ControlPanel
$sel:controlPanel:UpdateControlPanelResponse' :: UpdateControlPanelResponse -> Maybe ControlPanel
controlPanel} -> Maybe ControlPanel
controlPanel) (\s :: UpdateControlPanelResponse
s@UpdateControlPanelResponse' {} Maybe ControlPanel
a -> UpdateControlPanelResponse
s {$sel:controlPanel:UpdateControlPanelResponse' :: Maybe ControlPanel
controlPanel = Maybe ControlPanel
a} :: UpdateControlPanelResponse)
updateControlPanelResponse_httpStatus :: Lens.Lens' UpdateControlPanelResponse Prelude.Int
updateControlPanelResponse_httpStatus :: Lens' UpdateControlPanelResponse Int
updateControlPanelResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateControlPanelResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateControlPanelResponse' :: UpdateControlPanelResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateControlPanelResponse
s@UpdateControlPanelResponse' {} Int
a -> UpdateControlPanelResponse
s {$sel:httpStatus:UpdateControlPanelResponse' :: Int
httpStatus = Int
a} :: UpdateControlPanelResponse)
instance Prelude.NFData UpdateControlPanelResponse where
rnf :: UpdateControlPanelResponse -> ()
rnf UpdateControlPanelResponse' {Int
Maybe ControlPanel
httpStatus :: Int
controlPanel :: Maybe ControlPanel
$sel:httpStatus:UpdateControlPanelResponse' :: UpdateControlPanelResponse -> Int
$sel:controlPanel:UpdateControlPanelResponse' :: UpdateControlPanelResponse -> 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