{-# 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.ArcZonalShift.StartZonalShift
(
StartZonalShift (..),
newStartZonalShift,
startZonalShift_awayFrom,
startZonalShift_comment,
startZonalShift_expiresIn,
startZonalShift_resourceIdentifier,
ZonalShift (..),
newZonalShift,
zonalShift_awayFrom,
zonalShift_comment,
zonalShift_expiryTime,
zonalShift_resourceIdentifier,
zonalShift_startTime,
zonalShift_status,
zonalShift_zonalShiftId,
)
where
import Amazonka.ArcZonalShift.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 StartZonalShift = StartZonalShift'
{
StartZonalShift -> Text
awayFrom :: Prelude.Text,
:: Prelude.Text,
StartZonalShift -> Text
expiresIn :: Prelude.Text,
StartZonalShift -> Text
resourceIdentifier :: Prelude.Text
}
deriving (StartZonalShift -> StartZonalShift -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartZonalShift -> StartZonalShift -> Bool
$c/= :: StartZonalShift -> StartZonalShift -> Bool
== :: StartZonalShift -> StartZonalShift -> Bool
$c== :: StartZonalShift -> StartZonalShift -> Bool
Prelude.Eq, ReadPrec [StartZonalShift]
ReadPrec StartZonalShift
Int -> ReadS StartZonalShift
ReadS [StartZonalShift]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartZonalShift]
$creadListPrec :: ReadPrec [StartZonalShift]
readPrec :: ReadPrec StartZonalShift
$creadPrec :: ReadPrec StartZonalShift
readList :: ReadS [StartZonalShift]
$creadList :: ReadS [StartZonalShift]
readsPrec :: Int -> ReadS StartZonalShift
$creadsPrec :: Int -> ReadS StartZonalShift
Prelude.Read, Int -> StartZonalShift -> ShowS
[StartZonalShift] -> ShowS
StartZonalShift -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartZonalShift] -> ShowS
$cshowList :: [StartZonalShift] -> ShowS
show :: StartZonalShift -> String
$cshow :: StartZonalShift -> String
showsPrec :: Int -> StartZonalShift -> ShowS
$cshowsPrec :: Int -> StartZonalShift -> ShowS
Prelude.Show, forall x. Rep StartZonalShift x -> StartZonalShift
forall x. StartZonalShift -> Rep StartZonalShift x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartZonalShift x -> StartZonalShift
$cfrom :: forall x. StartZonalShift -> Rep StartZonalShift x
Prelude.Generic)
newStartZonalShift ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
StartZonalShift
newStartZonalShift :: Text -> Text -> Text -> Text -> StartZonalShift
newStartZonalShift
Text
pAwayFrom_
Text
pComment_
Text
pExpiresIn_
Text
pResourceIdentifier_ =
StartZonalShift'
{ $sel:awayFrom:StartZonalShift' :: Text
awayFrom = Text
pAwayFrom_,
$sel:comment:StartZonalShift' :: Text
comment = Text
pComment_,
$sel:expiresIn:StartZonalShift' :: Text
expiresIn = Text
pExpiresIn_,
$sel:resourceIdentifier:StartZonalShift' :: Text
resourceIdentifier = Text
pResourceIdentifier_
}
startZonalShift_awayFrom :: Lens.Lens' StartZonalShift Prelude.Text
startZonalShift_awayFrom :: Lens' StartZonalShift Text
startZonalShift_awayFrom = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartZonalShift' {Text
awayFrom :: Text
$sel:awayFrom:StartZonalShift' :: StartZonalShift -> Text
awayFrom} -> Text
awayFrom) (\s :: StartZonalShift
s@StartZonalShift' {} Text
a -> StartZonalShift
s {$sel:awayFrom:StartZonalShift' :: Text
awayFrom = Text
a} :: StartZonalShift)
startZonalShift_comment :: Lens.Lens' StartZonalShift Prelude.Text
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartZonalShift' {Text
comment :: Text
$sel:comment:StartZonalShift' :: StartZonalShift -> Text
comment} -> Text
comment) (\s :: StartZonalShift
s@StartZonalShift' {} Text
a -> StartZonalShift
s {$sel:comment:StartZonalShift' :: Text
comment = Text
a} :: StartZonalShift)
startZonalShift_expiresIn :: Lens.Lens' StartZonalShift Prelude.Text
startZonalShift_expiresIn :: Lens' StartZonalShift Text
startZonalShift_expiresIn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartZonalShift' {Text
expiresIn :: Text
$sel:expiresIn:StartZonalShift' :: StartZonalShift -> Text
expiresIn} -> Text
expiresIn) (\s :: StartZonalShift
s@StartZonalShift' {} Text
a -> StartZonalShift
s {$sel:expiresIn:StartZonalShift' :: Text
expiresIn = Text
a} :: StartZonalShift)
startZonalShift_resourceIdentifier :: Lens.Lens' StartZonalShift Prelude.Text
startZonalShift_resourceIdentifier :: Lens' StartZonalShift Text
startZonalShift_resourceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartZonalShift' {Text
resourceIdentifier :: Text
$sel:resourceIdentifier:StartZonalShift' :: StartZonalShift -> Text
resourceIdentifier} -> Text
resourceIdentifier) (\s :: StartZonalShift
s@StartZonalShift' {} Text
a -> StartZonalShift
s {$sel:resourceIdentifier:StartZonalShift' :: Text
resourceIdentifier = Text
a} :: StartZonalShift)
instance Core.AWSRequest StartZonalShift where
type AWSResponse StartZonalShift = ZonalShift
request :: (Service -> Service) -> StartZonalShift -> Request StartZonalShift
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 StartZonalShift
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse StartZonalShift)))
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 StartZonalShift where
hashWithSalt :: Int -> StartZonalShift -> Int
hashWithSalt Int
_salt StartZonalShift' {Text
resourceIdentifier :: Text
expiresIn :: Text
comment :: Text
awayFrom :: Text
$sel:resourceIdentifier:StartZonalShift' :: StartZonalShift -> Text
$sel:expiresIn:StartZonalShift' :: StartZonalShift -> Text
$sel:comment:StartZonalShift' :: StartZonalShift -> Text
$sel:awayFrom:StartZonalShift' :: StartZonalShift -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
awayFrom
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
comment
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
expiresIn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceIdentifier
instance Prelude.NFData StartZonalShift where
rnf :: StartZonalShift -> ()
rnf StartZonalShift' {Text
resourceIdentifier :: Text
expiresIn :: Text
comment :: Text
awayFrom :: Text
$sel:resourceIdentifier:StartZonalShift' :: StartZonalShift -> Text
$sel:expiresIn:StartZonalShift' :: StartZonalShift -> Text
$sel:comment:StartZonalShift' :: StartZonalShift -> Text
$sel:awayFrom:StartZonalShift' :: StartZonalShift -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
awayFrom
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
comment
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
expiresIn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceIdentifier
instance Data.ToHeaders StartZonalShift where
toHeaders :: StartZonalShift -> 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 StartZonalShift where
toJSON :: StartZonalShift -> Value
toJSON StartZonalShift' {Text
resourceIdentifier :: Text
expiresIn :: Text
comment :: Text
awayFrom :: Text
$sel:resourceIdentifier:StartZonalShift' :: StartZonalShift -> Text
$sel:expiresIn:StartZonalShift' :: StartZonalShift -> Text
$sel:comment:StartZonalShift' :: StartZonalShift -> Text
$sel:awayFrom:StartZonalShift' :: StartZonalShift -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"awayFrom" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
awayFrom),
forall a. a -> Maybe a
Prelude.Just (Key
"comment" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
comment),
forall a. a -> Maybe a
Prelude.Just (Key
"expiresIn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
expiresIn),
forall a. a -> Maybe a
Prelude.Just
(Key
"resourceIdentifier" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
resourceIdentifier)
]
)
instance Data.ToPath StartZonalShift where
toPath :: StartZonalShift -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/zonalshifts"
instance Data.ToQuery StartZonalShift where
toQuery :: StartZonalShift -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty