{-# 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.GlobalAccelerator.UpdateAccelerator
(
UpdateAccelerator (..),
newUpdateAccelerator,
updateAccelerator_enabled,
updateAccelerator_ipAddressType,
updateAccelerator_name,
updateAccelerator_acceleratorArn,
UpdateAcceleratorResponse (..),
newUpdateAcceleratorResponse,
updateAcceleratorResponse_accelerator,
updateAcceleratorResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GlobalAccelerator.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data UpdateAccelerator = UpdateAccelerator'
{
UpdateAccelerator -> Maybe Bool
enabled :: Prelude.Maybe Prelude.Bool,
UpdateAccelerator -> Maybe IpAddressType
ipAddressType :: Prelude.Maybe IpAddressType,
UpdateAccelerator -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
UpdateAccelerator -> Text
acceleratorArn :: Prelude.Text
}
deriving (UpdateAccelerator -> UpdateAccelerator -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAccelerator -> UpdateAccelerator -> Bool
$c/= :: UpdateAccelerator -> UpdateAccelerator -> Bool
== :: UpdateAccelerator -> UpdateAccelerator -> Bool
$c== :: UpdateAccelerator -> UpdateAccelerator -> Bool
Prelude.Eq, ReadPrec [UpdateAccelerator]
ReadPrec UpdateAccelerator
Int -> ReadS UpdateAccelerator
ReadS [UpdateAccelerator]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAccelerator]
$creadListPrec :: ReadPrec [UpdateAccelerator]
readPrec :: ReadPrec UpdateAccelerator
$creadPrec :: ReadPrec UpdateAccelerator
readList :: ReadS [UpdateAccelerator]
$creadList :: ReadS [UpdateAccelerator]
readsPrec :: Int -> ReadS UpdateAccelerator
$creadsPrec :: Int -> ReadS UpdateAccelerator
Prelude.Read, Int -> UpdateAccelerator -> ShowS
[UpdateAccelerator] -> ShowS
UpdateAccelerator -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAccelerator] -> ShowS
$cshowList :: [UpdateAccelerator] -> ShowS
show :: UpdateAccelerator -> String
$cshow :: UpdateAccelerator -> String
showsPrec :: Int -> UpdateAccelerator -> ShowS
$cshowsPrec :: Int -> UpdateAccelerator -> ShowS
Prelude.Show, forall x. Rep UpdateAccelerator x -> UpdateAccelerator
forall x. UpdateAccelerator -> Rep UpdateAccelerator x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateAccelerator x -> UpdateAccelerator
$cfrom :: forall x. UpdateAccelerator -> Rep UpdateAccelerator x
Prelude.Generic)
newUpdateAccelerator ::
Prelude.Text ->
UpdateAccelerator
newUpdateAccelerator :: Text -> UpdateAccelerator
newUpdateAccelerator Text
pAcceleratorArn_ =
UpdateAccelerator'
{ $sel:enabled:UpdateAccelerator' :: Maybe Bool
enabled = forall a. Maybe a
Prelude.Nothing,
$sel:ipAddressType:UpdateAccelerator' :: Maybe IpAddressType
ipAddressType = forall a. Maybe a
Prelude.Nothing,
$sel:name:UpdateAccelerator' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:acceleratorArn:UpdateAccelerator' :: Text
acceleratorArn = Text
pAcceleratorArn_
}
updateAccelerator_enabled :: Lens.Lens' UpdateAccelerator (Prelude.Maybe Prelude.Bool)
updateAccelerator_enabled :: Lens' UpdateAccelerator (Maybe Bool)
updateAccelerator_enabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccelerator' {Maybe Bool
enabled :: Maybe Bool
$sel:enabled:UpdateAccelerator' :: UpdateAccelerator -> Maybe Bool
enabled} -> Maybe Bool
enabled) (\s :: UpdateAccelerator
s@UpdateAccelerator' {} Maybe Bool
a -> UpdateAccelerator
s {$sel:enabled:UpdateAccelerator' :: Maybe Bool
enabled = Maybe Bool
a} :: UpdateAccelerator)
updateAccelerator_ipAddressType :: Lens.Lens' UpdateAccelerator (Prelude.Maybe IpAddressType)
updateAccelerator_ipAddressType :: Lens' UpdateAccelerator (Maybe IpAddressType)
updateAccelerator_ipAddressType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccelerator' {Maybe IpAddressType
ipAddressType :: Maybe IpAddressType
$sel:ipAddressType:UpdateAccelerator' :: UpdateAccelerator -> Maybe IpAddressType
ipAddressType} -> Maybe IpAddressType
ipAddressType) (\s :: UpdateAccelerator
s@UpdateAccelerator' {} Maybe IpAddressType
a -> UpdateAccelerator
s {$sel:ipAddressType:UpdateAccelerator' :: Maybe IpAddressType
ipAddressType = Maybe IpAddressType
a} :: UpdateAccelerator)
updateAccelerator_name :: Lens.Lens' UpdateAccelerator (Prelude.Maybe Prelude.Text)
updateAccelerator_name :: Lens' UpdateAccelerator (Maybe Text)
updateAccelerator_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccelerator' {Maybe Text
name :: Maybe Text
$sel:name:UpdateAccelerator' :: UpdateAccelerator -> Maybe Text
name} -> Maybe Text
name) (\s :: UpdateAccelerator
s@UpdateAccelerator' {} Maybe Text
a -> UpdateAccelerator
s {$sel:name:UpdateAccelerator' :: Maybe Text
name = Maybe Text
a} :: UpdateAccelerator)
updateAccelerator_acceleratorArn :: Lens.Lens' UpdateAccelerator Prelude.Text
updateAccelerator_acceleratorArn :: Lens' UpdateAccelerator Text
updateAccelerator_acceleratorArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccelerator' {Text
acceleratorArn :: Text
$sel:acceleratorArn:UpdateAccelerator' :: UpdateAccelerator -> Text
acceleratorArn} -> Text
acceleratorArn) (\s :: UpdateAccelerator
s@UpdateAccelerator' {} Text
a -> UpdateAccelerator
s {$sel:acceleratorArn:UpdateAccelerator' :: Text
acceleratorArn = Text
a} :: UpdateAccelerator)
instance Core.AWSRequest UpdateAccelerator where
type
AWSResponse UpdateAccelerator =
UpdateAcceleratorResponse
request :: (Service -> Service)
-> UpdateAccelerator -> Request UpdateAccelerator
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 UpdateAccelerator
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateAccelerator)))
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 Accelerator -> Int -> UpdateAcceleratorResponse
UpdateAcceleratorResponse'
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
"Accelerator")
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 UpdateAccelerator where
hashWithSalt :: Int -> UpdateAccelerator -> Int
hashWithSalt Int
_salt UpdateAccelerator' {Maybe Bool
Maybe Text
Maybe IpAddressType
Text
acceleratorArn :: Text
name :: Maybe Text
ipAddressType :: Maybe IpAddressType
enabled :: Maybe Bool
$sel:acceleratorArn:UpdateAccelerator' :: UpdateAccelerator -> Text
$sel:name:UpdateAccelerator' :: UpdateAccelerator -> Maybe Text
$sel:ipAddressType:UpdateAccelerator' :: UpdateAccelerator -> Maybe IpAddressType
$sel:enabled:UpdateAccelerator' :: UpdateAccelerator -> Maybe Bool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enabled
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IpAddressType
ipAddressType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
acceleratorArn
instance Prelude.NFData UpdateAccelerator where
rnf :: UpdateAccelerator -> ()
rnf UpdateAccelerator' {Maybe Bool
Maybe Text
Maybe IpAddressType
Text
acceleratorArn :: Text
name :: Maybe Text
ipAddressType :: Maybe IpAddressType
enabled :: Maybe Bool
$sel:acceleratorArn:UpdateAccelerator' :: UpdateAccelerator -> Text
$sel:name:UpdateAccelerator' :: UpdateAccelerator -> Maybe Text
$sel:ipAddressType:UpdateAccelerator' :: UpdateAccelerator -> Maybe IpAddressType
$sel:enabled:UpdateAccelerator' :: UpdateAccelerator -> Maybe Bool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
enabled
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IpAddressType
ipAddressType
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
acceleratorArn
instance Data.ToHeaders UpdateAccelerator where
toHeaders :: UpdateAccelerator -> 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
"GlobalAccelerator_V20180706.UpdateAccelerator" ::
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 UpdateAccelerator where
toJSON :: UpdateAccelerator -> Value
toJSON UpdateAccelerator' {Maybe Bool
Maybe Text
Maybe IpAddressType
Text
acceleratorArn :: Text
name :: Maybe Text
ipAddressType :: Maybe IpAddressType
enabled :: Maybe Bool
$sel:acceleratorArn:UpdateAccelerator' :: UpdateAccelerator -> Text
$sel:name:UpdateAccelerator' :: UpdateAccelerator -> Maybe Text
$sel:ipAddressType:UpdateAccelerator' :: UpdateAccelerator -> Maybe IpAddressType
$sel:enabled:UpdateAccelerator' :: UpdateAccelerator -> Maybe Bool
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Enabled" 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 Bool
enabled,
(Key
"IpAddressType" 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 IpAddressType
ipAddressType,
(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
"AcceleratorArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
acceleratorArn)
]
)
instance Data.ToPath UpdateAccelerator where
toPath :: UpdateAccelerator -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery UpdateAccelerator where
toQuery :: UpdateAccelerator -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateAcceleratorResponse = UpdateAcceleratorResponse'
{
UpdateAcceleratorResponse -> Maybe Accelerator
accelerator :: Prelude.Maybe Accelerator,
UpdateAcceleratorResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateAcceleratorResponse -> UpdateAcceleratorResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAcceleratorResponse -> UpdateAcceleratorResponse -> Bool
$c/= :: UpdateAcceleratorResponse -> UpdateAcceleratorResponse -> Bool
== :: UpdateAcceleratorResponse -> UpdateAcceleratorResponse -> Bool
$c== :: UpdateAcceleratorResponse -> UpdateAcceleratorResponse -> Bool
Prelude.Eq, ReadPrec [UpdateAcceleratorResponse]
ReadPrec UpdateAcceleratorResponse
Int -> ReadS UpdateAcceleratorResponse
ReadS [UpdateAcceleratorResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAcceleratorResponse]
$creadListPrec :: ReadPrec [UpdateAcceleratorResponse]
readPrec :: ReadPrec UpdateAcceleratorResponse
$creadPrec :: ReadPrec UpdateAcceleratorResponse
readList :: ReadS [UpdateAcceleratorResponse]
$creadList :: ReadS [UpdateAcceleratorResponse]
readsPrec :: Int -> ReadS UpdateAcceleratorResponse
$creadsPrec :: Int -> ReadS UpdateAcceleratorResponse
Prelude.Read, Int -> UpdateAcceleratorResponse -> ShowS
[UpdateAcceleratorResponse] -> ShowS
UpdateAcceleratorResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAcceleratorResponse] -> ShowS
$cshowList :: [UpdateAcceleratorResponse] -> ShowS
show :: UpdateAcceleratorResponse -> String
$cshow :: UpdateAcceleratorResponse -> String
showsPrec :: Int -> UpdateAcceleratorResponse -> ShowS
$cshowsPrec :: Int -> UpdateAcceleratorResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateAcceleratorResponse x -> UpdateAcceleratorResponse
forall x.
UpdateAcceleratorResponse -> Rep UpdateAcceleratorResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateAcceleratorResponse x -> UpdateAcceleratorResponse
$cfrom :: forall x.
UpdateAcceleratorResponse -> Rep UpdateAcceleratorResponse x
Prelude.Generic)
newUpdateAcceleratorResponse ::
Prelude.Int ->
UpdateAcceleratorResponse
newUpdateAcceleratorResponse :: Int -> UpdateAcceleratorResponse
newUpdateAcceleratorResponse Int
pHttpStatus_ =
UpdateAcceleratorResponse'
{ $sel:accelerator:UpdateAcceleratorResponse' :: Maybe Accelerator
accelerator =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:UpdateAcceleratorResponse' :: Int
httpStatus = Int
pHttpStatus_
}
updateAcceleratorResponse_accelerator :: Lens.Lens' UpdateAcceleratorResponse (Prelude.Maybe Accelerator)
updateAcceleratorResponse_accelerator :: Lens' UpdateAcceleratorResponse (Maybe Accelerator)
updateAcceleratorResponse_accelerator = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAcceleratorResponse' {Maybe Accelerator
accelerator :: Maybe Accelerator
$sel:accelerator:UpdateAcceleratorResponse' :: UpdateAcceleratorResponse -> Maybe Accelerator
accelerator} -> Maybe Accelerator
accelerator) (\s :: UpdateAcceleratorResponse
s@UpdateAcceleratorResponse' {} Maybe Accelerator
a -> UpdateAcceleratorResponse
s {$sel:accelerator:UpdateAcceleratorResponse' :: Maybe Accelerator
accelerator = Maybe Accelerator
a} :: UpdateAcceleratorResponse)
updateAcceleratorResponse_httpStatus :: Lens.Lens' UpdateAcceleratorResponse Prelude.Int
updateAcceleratorResponse_httpStatus :: Lens' UpdateAcceleratorResponse Int
updateAcceleratorResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAcceleratorResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateAcceleratorResponse' :: UpdateAcceleratorResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateAcceleratorResponse
s@UpdateAcceleratorResponse' {} Int
a -> UpdateAcceleratorResponse
s {$sel:httpStatus:UpdateAcceleratorResponse' :: Int
httpStatus = Int
a} :: UpdateAcceleratorResponse)
instance Prelude.NFData UpdateAcceleratorResponse where
rnf :: UpdateAcceleratorResponse -> ()
rnf UpdateAcceleratorResponse' {Int
Maybe Accelerator
httpStatus :: Int
accelerator :: Maybe Accelerator
$sel:httpStatus:UpdateAcceleratorResponse' :: UpdateAcceleratorResponse -> Int
$sel:accelerator:UpdateAcceleratorResponse' :: UpdateAcceleratorResponse -> Maybe Accelerator
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Accelerator
accelerator
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus