{-# 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.MGN.UpdateWave
(
UpdateWave (..),
newUpdateWave,
updateWave_description,
updateWave_name,
updateWave_waveID,
Wave (..),
newWave,
wave_arn,
wave_creationDateTime,
wave_description,
wave_isArchived,
wave_lastModifiedDateTime,
wave_name,
wave_tags,
wave_waveAggregatedStatus,
wave_waveID,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MGN.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data UpdateWave = UpdateWave'
{
UpdateWave -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
UpdateWave -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
UpdateWave -> Text
waveID :: Prelude.Text
}
deriving (UpdateWave -> UpdateWave -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateWave -> UpdateWave -> Bool
$c/= :: UpdateWave -> UpdateWave -> Bool
== :: UpdateWave -> UpdateWave -> Bool
$c== :: UpdateWave -> UpdateWave -> Bool
Prelude.Eq, ReadPrec [UpdateWave]
ReadPrec UpdateWave
Int -> ReadS UpdateWave
ReadS [UpdateWave]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateWave]
$creadListPrec :: ReadPrec [UpdateWave]
readPrec :: ReadPrec UpdateWave
$creadPrec :: ReadPrec UpdateWave
readList :: ReadS [UpdateWave]
$creadList :: ReadS [UpdateWave]
readsPrec :: Int -> ReadS UpdateWave
$creadsPrec :: Int -> ReadS UpdateWave
Prelude.Read, Int -> UpdateWave -> ShowS
[UpdateWave] -> ShowS
UpdateWave -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateWave] -> ShowS
$cshowList :: [UpdateWave] -> ShowS
show :: UpdateWave -> String
$cshow :: UpdateWave -> String
showsPrec :: Int -> UpdateWave -> ShowS
$cshowsPrec :: Int -> UpdateWave -> ShowS
Prelude.Show, forall x. Rep UpdateWave x -> UpdateWave
forall x. UpdateWave -> Rep UpdateWave x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateWave x -> UpdateWave
$cfrom :: forall x. UpdateWave -> Rep UpdateWave x
Prelude.Generic)
newUpdateWave ::
Prelude.Text ->
UpdateWave
newUpdateWave :: Text -> UpdateWave
newUpdateWave Text
pWaveID_ =
UpdateWave'
{ $sel:description:UpdateWave' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:name:UpdateWave' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:waveID:UpdateWave' :: Text
waveID = Text
pWaveID_
}
updateWave_description :: Lens.Lens' UpdateWave (Prelude.Maybe Prelude.Text)
updateWave_description :: Lens' UpdateWave (Maybe Text)
updateWave_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateWave' {Maybe Text
description :: Maybe Text
$sel:description:UpdateWave' :: UpdateWave -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateWave
s@UpdateWave' {} Maybe Text
a -> UpdateWave
s {$sel:description:UpdateWave' :: Maybe Text
description = Maybe Text
a} :: UpdateWave)
updateWave_name :: Lens.Lens' UpdateWave (Prelude.Maybe Prelude.Text)
updateWave_name :: Lens' UpdateWave (Maybe Text)
updateWave_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateWave' {Maybe Text
name :: Maybe Text
$sel:name:UpdateWave' :: UpdateWave -> Maybe Text
name} -> Maybe Text
name) (\s :: UpdateWave
s@UpdateWave' {} Maybe Text
a -> UpdateWave
s {$sel:name:UpdateWave' :: Maybe Text
name = Maybe Text
a} :: UpdateWave)
updateWave_waveID :: Lens.Lens' UpdateWave Prelude.Text
updateWave_waveID :: Lens' UpdateWave Text
updateWave_waveID = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateWave' {Text
waveID :: Text
$sel:waveID:UpdateWave' :: UpdateWave -> Text
waveID} -> Text
waveID) (\s :: UpdateWave
s@UpdateWave' {} Text
a -> UpdateWave
s {$sel:waveID:UpdateWave' :: Text
waveID = Text
a} :: UpdateWave)
instance Core.AWSRequest UpdateWave where
type AWSResponse UpdateWave = Wave
request :: (Service -> Service) -> UpdateWave -> Request UpdateWave
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 UpdateWave
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse UpdateWave)))
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 -> forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)
instance Prelude.Hashable UpdateWave where
hashWithSalt :: Int -> UpdateWave -> Int
hashWithSalt Int
_salt UpdateWave' {Maybe Text
Text
waveID :: Text
name :: Maybe Text
description :: Maybe Text
$sel:waveID:UpdateWave' :: UpdateWave -> Text
$sel:name:UpdateWave' :: UpdateWave -> Maybe Text
$sel:description:UpdateWave' :: UpdateWave -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
waveID
instance Prelude.NFData UpdateWave where
rnf :: UpdateWave -> ()
rnf UpdateWave' {Maybe Text
Text
waveID :: Text
name :: Maybe Text
description :: Maybe Text
$sel:waveID:UpdateWave' :: UpdateWave -> Text
$sel:name:UpdateWave' :: UpdateWave -> Maybe Text
$sel:description:UpdateWave' :: UpdateWave -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
waveID
instance Data.ToHeaders UpdateWave where
toHeaders :: UpdateWave -> 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 UpdateWave where
toJSON :: UpdateWave -> Value
toJSON UpdateWave' {Maybe Text
Text
waveID :: Text
name :: Maybe Text
description :: Maybe Text
$sel:waveID:UpdateWave' :: UpdateWave -> Text
$sel:name:UpdateWave' :: UpdateWave -> Maybe Text
$sel:description:UpdateWave' :: UpdateWave -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"description" 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
description,
(Key
"name" 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
name,
forall a. a -> Maybe a
Prelude.Just (Key
"waveID" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
waveID)
]
)
instance Data.ToPath UpdateWave where
toPath :: UpdateWave -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/UpdateWave"
instance Data.ToQuery UpdateWave where
toQuery :: UpdateWave -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty