{-# 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.DirectConnect.UpdateLag
(
UpdateLag (..),
newUpdateLag,
updateLag_encryptionMode,
updateLag_lagName,
updateLag_minimumLinks,
updateLag_lagId,
Lag (..),
newLag,
lag_allowsHostedConnections,
lag_awsDevice,
lag_awsDeviceV2,
lag_awsLogicalDeviceId,
lag_connections,
lag_connectionsBandwidth,
lag_encryptionMode,
lag_hasLogicalRedundancy,
lag_jumboFrameCapable,
lag_lagId,
lag_lagName,
lag_lagState,
lag_location,
lag_macSecCapable,
lag_macSecKeys,
lag_minimumLinks,
lag_numberOfConnections,
lag_ownerAccount,
lag_providerName,
lag_region,
lag_tags,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DirectConnect.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data UpdateLag = UpdateLag'
{
UpdateLag -> Maybe Text
encryptionMode :: Prelude.Maybe Prelude.Text,
UpdateLag -> Maybe Text
lagName :: Prelude.Maybe Prelude.Text,
UpdateLag -> Maybe Int
minimumLinks :: Prelude.Maybe Prelude.Int,
UpdateLag -> Text
lagId :: Prelude.Text
}
deriving (UpdateLag -> UpdateLag -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateLag -> UpdateLag -> Bool
$c/= :: UpdateLag -> UpdateLag -> Bool
== :: UpdateLag -> UpdateLag -> Bool
$c== :: UpdateLag -> UpdateLag -> Bool
Prelude.Eq, ReadPrec [UpdateLag]
ReadPrec UpdateLag
Int -> ReadS UpdateLag
ReadS [UpdateLag]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateLag]
$creadListPrec :: ReadPrec [UpdateLag]
readPrec :: ReadPrec UpdateLag
$creadPrec :: ReadPrec UpdateLag
readList :: ReadS [UpdateLag]
$creadList :: ReadS [UpdateLag]
readsPrec :: Int -> ReadS UpdateLag
$creadsPrec :: Int -> ReadS UpdateLag
Prelude.Read, Int -> UpdateLag -> ShowS
[UpdateLag] -> ShowS
UpdateLag -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateLag] -> ShowS
$cshowList :: [UpdateLag] -> ShowS
show :: UpdateLag -> String
$cshow :: UpdateLag -> String
showsPrec :: Int -> UpdateLag -> ShowS
$cshowsPrec :: Int -> UpdateLag -> ShowS
Prelude.Show, forall x. Rep UpdateLag x -> UpdateLag
forall x. UpdateLag -> Rep UpdateLag x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateLag x -> UpdateLag
$cfrom :: forall x. UpdateLag -> Rep UpdateLag x
Prelude.Generic)
newUpdateLag ::
Prelude.Text ->
UpdateLag
newUpdateLag :: Text -> UpdateLag
newUpdateLag Text
pLagId_ =
UpdateLag'
{ $sel:encryptionMode:UpdateLag' :: Maybe Text
encryptionMode = forall a. Maybe a
Prelude.Nothing,
$sel:lagName:UpdateLag' :: Maybe Text
lagName = forall a. Maybe a
Prelude.Nothing,
$sel:minimumLinks:UpdateLag' :: Maybe Int
minimumLinks = forall a. Maybe a
Prelude.Nothing,
$sel:lagId:UpdateLag' :: Text
lagId = Text
pLagId_
}
updateLag_encryptionMode :: Lens.Lens' UpdateLag (Prelude.Maybe Prelude.Text)
updateLag_encryptionMode :: Lens' UpdateLag (Maybe Text)
updateLag_encryptionMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateLag' {Maybe Text
encryptionMode :: Maybe Text
$sel:encryptionMode:UpdateLag' :: UpdateLag -> Maybe Text
encryptionMode} -> Maybe Text
encryptionMode) (\s :: UpdateLag
s@UpdateLag' {} Maybe Text
a -> UpdateLag
s {$sel:encryptionMode:UpdateLag' :: Maybe Text
encryptionMode = Maybe Text
a} :: UpdateLag)
updateLag_lagName :: Lens.Lens' UpdateLag (Prelude.Maybe Prelude.Text)
updateLag_lagName :: Lens' UpdateLag (Maybe Text)
updateLag_lagName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateLag' {Maybe Text
lagName :: Maybe Text
$sel:lagName:UpdateLag' :: UpdateLag -> Maybe Text
lagName} -> Maybe Text
lagName) (\s :: UpdateLag
s@UpdateLag' {} Maybe Text
a -> UpdateLag
s {$sel:lagName:UpdateLag' :: Maybe Text
lagName = Maybe Text
a} :: UpdateLag)
updateLag_minimumLinks :: Lens.Lens' UpdateLag (Prelude.Maybe Prelude.Int)
updateLag_minimumLinks :: Lens' UpdateLag (Maybe Int)
updateLag_minimumLinks = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateLag' {Maybe Int
minimumLinks :: Maybe Int
$sel:minimumLinks:UpdateLag' :: UpdateLag -> Maybe Int
minimumLinks} -> Maybe Int
minimumLinks) (\s :: UpdateLag
s@UpdateLag' {} Maybe Int
a -> UpdateLag
s {$sel:minimumLinks:UpdateLag' :: Maybe Int
minimumLinks = Maybe Int
a} :: UpdateLag)
updateLag_lagId :: Lens.Lens' UpdateLag Prelude.Text
updateLag_lagId :: Lens' UpdateLag Text
updateLag_lagId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateLag' {Text
lagId :: Text
$sel:lagId:UpdateLag' :: UpdateLag -> Text
lagId} -> Text
lagId) (\s :: UpdateLag
s@UpdateLag' {} Text
a -> UpdateLag
s {$sel:lagId:UpdateLag' :: Text
lagId = Text
a} :: UpdateLag)
instance Core.AWSRequest UpdateLag where
type AWSResponse UpdateLag = Lag
request :: (Service -> Service) -> UpdateLag -> Request UpdateLag
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 UpdateLag
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse UpdateLag)))
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 UpdateLag where
hashWithSalt :: Int -> UpdateLag -> Int
hashWithSalt Int
_salt UpdateLag' {Maybe Int
Maybe Text
Text
lagId :: Text
minimumLinks :: Maybe Int
lagName :: Maybe Text
encryptionMode :: Maybe Text
$sel:lagId:UpdateLag' :: UpdateLag -> Text
$sel:minimumLinks:UpdateLag' :: UpdateLag -> Maybe Int
$sel:lagName:UpdateLag' :: UpdateLag -> Maybe Text
$sel:encryptionMode:UpdateLag' :: UpdateLag -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
encryptionMode
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lagName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
minimumLinks
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
lagId
instance Prelude.NFData UpdateLag where
rnf :: UpdateLag -> ()
rnf UpdateLag' {Maybe Int
Maybe Text
Text
lagId :: Text
minimumLinks :: Maybe Int
lagName :: Maybe Text
encryptionMode :: Maybe Text
$sel:lagId:UpdateLag' :: UpdateLag -> Text
$sel:minimumLinks:UpdateLag' :: UpdateLag -> Maybe Int
$sel:lagName:UpdateLag' :: UpdateLag -> Maybe Text
$sel:encryptionMode:UpdateLag' :: UpdateLag -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
encryptionMode
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lagName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
minimumLinks
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
lagId
instance Data.ToHeaders UpdateLag where
toHeaders :: UpdateLag -> 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
"OvertureService.UpdateLag" :: 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 UpdateLag where
toJSON :: UpdateLag -> Value
toJSON UpdateLag' {Maybe Int
Maybe Text
Text
lagId :: Text
minimumLinks :: Maybe Int
lagName :: Maybe Text
encryptionMode :: Maybe Text
$sel:lagId:UpdateLag' :: UpdateLag -> Text
$sel:minimumLinks:UpdateLag' :: UpdateLag -> Maybe Int
$sel:lagName:UpdateLag' :: UpdateLag -> Maybe Text
$sel:encryptionMode:UpdateLag' :: UpdateLag -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"encryptionMode" 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
encryptionMode,
(Key
"lagName" 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
lagName,
(Key
"minimumLinks" 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 Int
minimumLinks,
forall a. a -> Maybe a
Prelude.Just (Key
"lagId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
lagId)
]
)
instance Data.ToPath UpdateLag where
toPath :: UpdateLag -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery UpdateLag where
toQuery :: UpdateLag -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty