{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.GlobalAccelerator.UpdateCustomRoutingAccelerator
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Update a custom routing accelerator.
module Amazonka.GlobalAccelerator.UpdateCustomRoutingAccelerator
  ( -- * Creating a Request
    UpdateCustomRoutingAccelerator (..),
    newUpdateCustomRoutingAccelerator,

    -- * Request Lenses
    updateCustomRoutingAccelerator_enabled,
    updateCustomRoutingAccelerator_ipAddressType,
    updateCustomRoutingAccelerator_name,
    updateCustomRoutingAccelerator_acceleratorArn,

    -- * Destructuring the Response
    UpdateCustomRoutingAcceleratorResponse (..),
    newUpdateCustomRoutingAcceleratorResponse,

    -- * Response Lenses
    updateCustomRoutingAcceleratorResponse_accelerator,
    updateCustomRoutingAcceleratorResponse_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

-- | /See:/ 'newUpdateCustomRoutingAccelerator' smart constructor.
data UpdateCustomRoutingAccelerator = UpdateCustomRoutingAccelerator'
  { -- | Indicates whether an accelerator is enabled. The value is true or false.
    -- The default value is true.
    --
    -- If the value is set to true, the accelerator cannot be deleted. If set
    -- to false, the accelerator can be deleted.
    UpdateCustomRoutingAccelerator -> Maybe Bool
enabled :: Prelude.Maybe Prelude.Bool,
    -- | The IP address type that an accelerator supports. For a custom routing
    -- accelerator, the value must be IPV4.
    UpdateCustomRoutingAccelerator -> Maybe IpAddressType
ipAddressType :: Prelude.Maybe IpAddressType,
    -- | The name of the accelerator. The name can have a maximum of 64
    -- characters, must contain only alphanumeric characters, periods (.), or
    -- hyphens (-), and must not begin or end with a hyphen or period.
    UpdateCustomRoutingAccelerator -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the accelerator to update.
    UpdateCustomRoutingAccelerator -> Text
acceleratorArn :: Prelude.Text
  }
  deriving (UpdateCustomRoutingAccelerator
-> UpdateCustomRoutingAccelerator -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateCustomRoutingAccelerator
-> UpdateCustomRoutingAccelerator -> Bool
$c/= :: UpdateCustomRoutingAccelerator
-> UpdateCustomRoutingAccelerator -> Bool
== :: UpdateCustomRoutingAccelerator
-> UpdateCustomRoutingAccelerator -> Bool
$c== :: UpdateCustomRoutingAccelerator
-> UpdateCustomRoutingAccelerator -> Bool
Prelude.Eq, ReadPrec [UpdateCustomRoutingAccelerator]
ReadPrec UpdateCustomRoutingAccelerator
Int -> ReadS UpdateCustomRoutingAccelerator
ReadS [UpdateCustomRoutingAccelerator]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateCustomRoutingAccelerator]
$creadListPrec :: ReadPrec [UpdateCustomRoutingAccelerator]
readPrec :: ReadPrec UpdateCustomRoutingAccelerator
$creadPrec :: ReadPrec UpdateCustomRoutingAccelerator
readList :: ReadS [UpdateCustomRoutingAccelerator]
$creadList :: ReadS [UpdateCustomRoutingAccelerator]
readsPrec :: Int -> ReadS UpdateCustomRoutingAccelerator
$creadsPrec :: Int -> ReadS UpdateCustomRoutingAccelerator
Prelude.Read, Int -> UpdateCustomRoutingAccelerator -> ShowS
[UpdateCustomRoutingAccelerator] -> ShowS
UpdateCustomRoutingAccelerator -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateCustomRoutingAccelerator] -> ShowS
$cshowList :: [UpdateCustomRoutingAccelerator] -> ShowS
show :: UpdateCustomRoutingAccelerator -> String
$cshow :: UpdateCustomRoutingAccelerator -> String
showsPrec :: Int -> UpdateCustomRoutingAccelerator -> ShowS
$cshowsPrec :: Int -> UpdateCustomRoutingAccelerator -> ShowS
Prelude.Show, forall x.
Rep UpdateCustomRoutingAccelerator x
-> UpdateCustomRoutingAccelerator
forall x.
UpdateCustomRoutingAccelerator
-> Rep UpdateCustomRoutingAccelerator x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateCustomRoutingAccelerator x
-> UpdateCustomRoutingAccelerator
$cfrom :: forall x.
UpdateCustomRoutingAccelerator
-> Rep UpdateCustomRoutingAccelerator x
Prelude.Generic)

-- |
-- Create a value of 'UpdateCustomRoutingAccelerator' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'enabled', 'updateCustomRoutingAccelerator_enabled' - Indicates whether an accelerator is enabled. The value is true or false.
-- The default value is true.
--
-- If the value is set to true, the accelerator cannot be deleted. If set
-- to false, the accelerator can be deleted.
--
-- 'ipAddressType', 'updateCustomRoutingAccelerator_ipAddressType' - The IP address type that an accelerator supports. For a custom routing
-- accelerator, the value must be IPV4.
--
-- 'name', 'updateCustomRoutingAccelerator_name' - The name of the accelerator. The name can have a maximum of 64
-- characters, must contain only alphanumeric characters, periods (.), or
-- hyphens (-), and must not begin or end with a hyphen or period.
--
-- 'acceleratorArn', 'updateCustomRoutingAccelerator_acceleratorArn' - The Amazon Resource Name (ARN) of the accelerator to update.
newUpdateCustomRoutingAccelerator ::
  -- | 'acceleratorArn'
  Prelude.Text ->
  UpdateCustomRoutingAccelerator
newUpdateCustomRoutingAccelerator :: Text -> UpdateCustomRoutingAccelerator
newUpdateCustomRoutingAccelerator Text
pAcceleratorArn_ =
  UpdateCustomRoutingAccelerator'
    { $sel:enabled:UpdateCustomRoutingAccelerator' :: Maybe Bool
enabled =
        forall a. Maybe a
Prelude.Nothing,
      $sel:ipAddressType:UpdateCustomRoutingAccelerator' :: Maybe IpAddressType
ipAddressType = forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdateCustomRoutingAccelerator' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:acceleratorArn:UpdateCustomRoutingAccelerator' :: Text
acceleratorArn = Text
pAcceleratorArn_
    }

-- | Indicates whether an accelerator is enabled. The value is true or false.
-- The default value is true.
--
-- If the value is set to true, the accelerator cannot be deleted. If set
-- to false, the accelerator can be deleted.
updateCustomRoutingAccelerator_enabled :: Lens.Lens' UpdateCustomRoutingAccelerator (Prelude.Maybe Prelude.Bool)
updateCustomRoutingAccelerator_enabled :: Lens' UpdateCustomRoutingAccelerator (Maybe Bool)
updateCustomRoutingAccelerator_enabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateCustomRoutingAccelerator' {Maybe Bool
enabled :: Maybe Bool
$sel:enabled:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Maybe Bool
enabled} -> Maybe Bool
enabled) (\s :: UpdateCustomRoutingAccelerator
s@UpdateCustomRoutingAccelerator' {} Maybe Bool
a -> UpdateCustomRoutingAccelerator
s {$sel:enabled:UpdateCustomRoutingAccelerator' :: Maybe Bool
enabled = Maybe Bool
a} :: UpdateCustomRoutingAccelerator)

-- | The IP address type that an accelerator supports. For a custom routing
-- accelerator, the value must be IPV4.
updateCustomRoutingAccelerator_ipAddressType :: Lens.Lens' UpdateCustomRoutingAccelerator (Prelude.Maybe IpAddressType)
updateCustomRoutingAccelerator_ipAddressType :: Lens' UpdateCustomRoutingAccelerator (Maybe IpAddressType)
updateCustomRoutingAccelerator_ipAddressType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateCustomRoutingAccelerator' {Maybe IpAddressType
ipAddressType :: Maybe IpAddressType
$sel:ipAddressType:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Maybe IpAddressType
ipAddressType} -> Maybe IpAddressType
ipAddressType) (\s :: UpdateCustomRoutingAccelerator
s@UpdateCustomRoutingAccelerator' {} Maybe IpAddressType
a -> UpdateCustomRoutingAccelerator
s {$sel:ipAddressType:UpdateCustomRoutingAccelerator' :: Maybe IpAddressType
ipAddressType = Maybe IpAddressType
a} :: UpdateCustomRoutingAccelerator)

-- | The name of the accelerator. The name can have a maximum of 64
-- characters, must contain only alphanumeric characters, periods (.), or
-- hyphens (-), and must not begin or end with a hyphen or period.
updateCustomRoutingAccelerator_name :: Lens.Lens' UpdateCustomRoutingAccelerator (Prelude.Maybe Prelude.Text)
updateCustomRoutingAccelerator_name :: Lens' UpdateCustomRoutingAccelerator (Maybe Text)
updateCustomRoutingAccelerator_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateCustomRoutingAccelerator' {Maybe Text
name :: Maybe Text
$sel:name:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Maybe Text
name} -> Maybe Text
name) (\s :: UpdateCustomRoutingAccelerator
s@UpdateCustomRoutingAccelerator' {} Maybe Text
a -> UpdateCustomRoutingAccelerator
s {$sel:name:UpdateCustomRoutingAccelerator' :: Maybe Text
name = Maybe Text
a} :: UpdateCustomRoutingAccelerator)

-- | The Amazon Resource Name (ARN) of the accelerator to update.
updateCustomRoutingAccelerator_acceleratorArn :: Lens.Lens' UpdateCustomRoutingAccelerator Prelude.Text
updateCustomRoutingAccelerator_acceleratorArn :: Lens' UpdateCustomRoutingAccelerator Text
updateCustomRoutingAccelerator_acceleratorArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateCustomRoutingAccelerator' {Text
acceleratorArn :: Text
$sel:acceleratorArn:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Text
acceleratorArn} -> Text
acceleratorArn) (\s :: UpdateCustomRoutingAccelerator
s@UpdateCustomRoutingAccelerator' {} Text
a -> UpdateCustomRoutingAccelerator
s {$sel:acceleratorArn:UpdateCustomRoutingAccelerator' :: Text
acceleratorArn = Text
a} :: UpdateCustomRoutingAccelerator)

instance
  Core.AWSRequest
    UpdateCustomRoutingAccelerator
  where
  type
    AWSResponse UpdateCustomRoutingAccelerator =
      UpdateCustomRoutingAcceleratorResponse
  request :: (Service -> Service)
-> UpdateCustomRoutingAccelerator
-> Request UpdateCustomRoutingAccelerator
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 UpdateCustomRoutingAccelerator
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse UpdateCustomRoutingAccelerator)))
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 CustomRoutingAccelerator
-> Int -> UpdateCustomRoutingAcceleratorResponse
UpdateCustomRoutingAcceleratorResponse'
            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
    UpdateCustomRoutingAccelerator
  where
  hashWithSalt :: Int -> UpdateCustomRoutingAccelerator -> Int
hashWithSalt
    Int
_salt
    UpdateCustomRoutingAccelerator' {Maybe Bool
Maybe Text
Maybe IpAddressType
Text
acceleratorArn :: Text
name :: Maybe Text
ipAddressType :: Maybe IpAddressType
enabled :: Maybe Bool
$sel:acceleratorArn:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Text
$sel:name:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Maybe Text
$sel:ipAddressType:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Maybe IpAddressType
$sel:enabled:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> 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
    UpdateCustomRoutingAccelerator
  where
  rnf :: UpdateCustomRoutingAccelerator -> ()
rnf UpdateCustomRoutingAccelerator' {Maybe Bool
Maybe Text
Maybe IpAddressType
Text
acceleratorArn :: Text
name :: Maybe Text
ipAddressType :: Maybe IpAddressType
enabled :: Maybe Bool
$sel:acceleratorArn:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Text
$sel:name:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Maybe Text
$sel:ipAddressType:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Maybe IpAddressType
$sel:enabled:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> 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
    UpdateCustomRoutingAccelerator
  where
  toHeaders :: UpdateCustomRoutingAccelerator -> 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.UpdateCustomRoutingAccelerator" ::
                          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 UpdateCustomRoutingAccelerator where
  toJSON :: UpdateCustomRoutingAccelerator -> Value
toJSON UpdateCustomRoutingAccelerator' {Maybe Bool
Maybe Text
Maybe IpAddressType
Text
acceleratorArn :: Text
name :: Maybe Text
ipAddressType :: Maybe IpAddressType
enabled :: Maybe Bool
$sel:acceleratorArn:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Text
$sel:name:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Maybe Text
$sel:ipAddressType:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> Maybe IpAddressType
$sel:enabled:UpdateCustomRoutingAccelerator' :: UpdateCustomRoutingAccelerator -> 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 UpdateCustomRoutingAccelerator where
  toPath :: UpdateCustomRoutingAccelerator -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery UpdateCustomRoutingAccelerator where
  toQuery :: UpdateCustomRoutingAccelerator -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newUpdateCustomRoutingAcceleratorResponse' smart constructor.
data UpdateCustomRoutingAcceleratorResponse = UpdateCustomRoutingAcceleratorResponse'
  { -- | Information about the updated custom routing accelerator.
    UpdateCustomRoutingAcceleratorResponse
-> Maybe CustomRoutingAccelerator
accelerator :: Prelude.Maybe CustomRoutingAccelerator,
    -- | The response's http status code.
    UpdateCustomRoutingAcceleratorResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateCustomRoutingAcceleratorResponse
-> UpdateCustomRoutingAcceleratorResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateCustomRoutingAcceleratorResponse
-> UpdateCustomRoutingAcceleratorResponse -> Bool
$c/= :: UpdateCustomRoutingAcceleratorResponse
-> UpdateCustomRoutingAcceleratorResponse -> Bool
== :: UpdateCustomRoutingAcceleratorResponse
-> UpdateCustomRoutingAcceleratorResponse -> Bool
$c== :: UpdateCustomRoutingAcceleratorResponse
-> UpdateCustomRoutingAcceleratorResponse -> Bool
Prelude.Eq, ReadPrec [UpdateCustomRoutingAcceleratorResponse]
ReadPrec UpdateCustomRoutingAcceleratorResponse
Int -> ReadS UpdateCustomRoutingAcceleratorResponse
ReadS [UpdateCustomRoutingAcceleratorResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateCustomRoutingAcceleratorResponse]
$creadListPrec :: ReadPrec [UpdateCustomRoutingAcceleratorResponse]
readPrec :: ReadPrec UpdateCustomRoutingAcceleratorResponse
$creadPrec :: ReadPrec UpdateCustomRoutingAcceleratorResponse
readList :: ReadS [UpdateCustomRoutingAcceleratorResponse]
$creadList :: ReadS [UpdateCustomRoutingAcceleratorResponse]
readsPrec :: Int -> ReadS UpdateCustomRoutingAcceleratorResponse
$creadsPrec :: Int -> ReadS UpdateCustomRoutingAcceleratorResponse
Prelude.Read, Int -> UpdateCustomRoutingAcceleratorResponse -> ShowS
[UpdateCustomRoutingAcceleratorResponse] -> ShowS
UpdateCustomRoutingAcceleratorResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateCustomRoutingAcceleratorResponse] -> ShowS
$cshowList :: [UpdateCustomRoutingAcceleratorResponse] -> ShowS
show :: UpdateCustomRoutingAcceleratorResponse -> String
$cshow :: UpdateCustomRoutingAcceleratorResponse -> String
showsPrec :: Int -> UpdateCustomRoutingAcceleratorResponse -> ShowS
$cshowsPrec :: Int -> UpdateCustomRoutingAcceleratorResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateCustomRoutingAcceleratorResponse x
-> UpdateCustomRoutingAcceleratorResponse
forall x.
UpdateCustomRoutingAcceleratorResponse
-> Rep UpdateCustomRoutingAcceleratorResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateCustomRoutingAcceleratorResponse x
-> UpdateCustomRoutingAcceleratorResponse
$cfrom :: forall x.
UpdateCustomRoutingAcceleratorResponse
-> Rep UpdateCustomRoutingAcceleratorResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateCustomRoutingAcceleratorResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'accelerator', 'updateCustomRoutingAcceleratorResponse_accelerator' - Information about the updated custom routing accelerator.
--
-- 'httpStatus', 'updateCustomRoutingAcceleratorResponse_httpStatus' - The response's http status code.
newUpdateCustomRoutingAcceleratorResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateCustomRoutingAcceleratorResponse
newUpdateCustomRoutingAcceleratorResponse :: Int -> UpdateCustomRoutingAcceleratorResponse
newUpdateCustomRoutingAcceleratorResponse
  Int
pHttpStatus_ =
    UpdateCustomRoutingAcceleratorResponse'
      { $sel:accelerator:UpdateCustomRoutingAcceleratorResponse' :: Maybe CustomRoutingAccelerator
accelerator =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:UpdateCustomRoutingAcceleratorResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | Information about the updated custom routing accelerator.
updateCustomRoutingAcceleratorResponse_accelerator :: Lens.Lens' UpdateCustomRoutingAcceleratorResponse (Prelude.Maybe CustomRoutingAccelerator)
updateCustomRoutingAcceleratorResponse_accelerator :: Lens'
  UpdateCustomRoutingAcceleratorResponse
  (Maybe CustomRoutingAccelerator)
updateCustomRoutingAcceleratorResponse_accelerator = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateCustomRoutingAcceleratorResponse' {Maybe CustomRoutingAccelerator
accelerator :: Maybe CustomRoutingAccelerator
$sel:accelerator:UpdateCustomRoutingAcceleratorResponse' :: UpdateCustomRoutingAcceleratorResponse
-> Maybe CustomRoutingAccelerator
accelerator} -> Maybe CustomRoutingAccelerator
accelerator) (\s :: UpdateCustomRoutingAcceleratorResponse
s@UpdateCustomRoutingAcceleratorResponse' {} Maybe CustomRoutingAccelerator
a -> UpdateCustomRoutingAcceleratorResponse
s {$sel:accelerator:UpdateCustomRoutingAcceleratorResponse' :: Maybe CustomRoutingAccelerator
accelerator = Maybe CustomRoutingAccelerator
a} :: UpdateCustomRoutingAcceleratorResponse)

-- | The response's http status code.
updateCustomRoutingAcceleratorResponse_httpStatus :: Lens.Lens' UpdateCustomRoutingAcceleratorResponse Prelude.Int
updateCustomRoutingAcceleratorResponse_httpStatus :: Lens' UpdateCustomRoutingAcceleratorResponse Int
updateCustomRoutingAcceleratorResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateCustomRoutingAcceleratorResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateCustomRoutingAcceleratorResponse' :: UpdateCustomRoutingAcceleratorResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateCustomRoutingAcceleratorResponse
s@UpdateCustomRoutingAcceleratorResponse' {} Int
a -> UpdateCustomRoutingAcceleratorResponse
s {$sel:httpStatus:UpdateCustomRoutingAcceleratorResponse' :: Int
httpStatus = Int
a} :: UpdateCustomRoutingAcceleratorResponse)

instance
  Prelude.NFData
    UpdateCustomRoutingAcceleratorResponse
  where
  rnf :: UpdateCustomRoutingAcceleratorResponse -> ()
rnf UpdateCustomRoutingAcceleratorResponse' {Int
Maybe CustomRoutingAccelerator
httpStatus :: Int
accelerator :: Maybe CustomRoutingAccelerator
$sel:httpStatus:UpdateCustomRoutingAcceleratorResponse' :: UpdateCustomRoutingAcceleratorResponse -> Int
$sel:accelerator:UpdateCustomRoutingAcceleratorResponse' :: UpdateCustomRoutingAcceleratorResponse
-> Maybe CustomRoutingAccelerator
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe CustomRoutingAccelerator
accelerator
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus