{-# 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.StorageGateway.UpdateGatewayInformation
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates a gateway\'s metadata, which includes the gateway\'s name and
-- time zone. To specify which gateway to update, use the Amazon Resource
-- Name (ARN) of the gateway in your request.
--
-- For gateways activated after September 2, 2015, the gateway\'s ARN
-- contains the gateway ID rather than the gateway name. However, changing
-- the name of the gateway has no effect on the gateway\'s ARN.
module Amazonka.StorageGateway.UpdateGatewayInformation
  ( -- * Creating a Request
    UpdateGatewayInformation (..),
    newUpdateGatewayInformation,

    -- * Request Lenses
    updateGatewayInformation_gatewayCapacity,
    updateGatewayInformation_gatewayName,
    updateGatewayInformation_gatewayTimezone,
    updateGatewayInformation_cloudWatchLogGroupARN,
    updateGatewayInformation_gatewayARN,

    -- * Destructuring the Response
    UpdateGatewayInformationResponse (..),
    newUpdateGatewayInformationResponse,

    -- * Response Lenses
    updateGatewayInformationResponse_gatewayARN,
    updateGatewayInformationResponse_gatewayName,
    updateGatewayInformationResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.StorageGateway.Types

-- | /See:/ 'newUpdateGatewayInformation' smart constructor.
data UpdateGatewayInformation = UpdateGatewayInformation'
  { -- | Specifies the size of the gateway\'s metadata cache.
    UpdateGatewayInformation -> Maybe GatewayCapacity
gatewayCapacity :: Prelude.Maybe GatewayCapacity,
    UpdateGatewayInformation -> Maybe Text
gatewayName :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates the time zone of the gateway.
    UpdateGatewayInformation -> Maybe Text
gatewayTimezone :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that
    -- you want to use to monitor and log events in the gateway.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html What is Amazon CloudWatch Logs?>
    UpdateGatewayInformation -> Maybe Text
cloudWatchLogGroupARN :: Prelude.Maybe Prelude.Text,
    UpdateGatewayInformation -> Text
gatewayARN :: Prelude.Text
  }
  deriving (UpdateGatewayInformation -> UpdateGatewayInformation -> Bool
(UpdateGatewayInformation -> UpdateGatewayInformation -> Bool)
-> (UpdateGatewayInformation -> UpdateGatewayInformation -> Bool)
-> Eq UpdateGatewayInformation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateGatewayInformation -> UpdateGatewayInformation -> Bool
$c/= :: UpdateGatewayInformation -> UpdateGatewayInformation -> Bool
== :: UpdateGatewayInformation -> UpdateGatewayInformation -> Bool
$c== :: UpdateGatewayInformation -> UpdateGatewayInformation -> Bool
Prelude.Eq, ReadPrec [UpdateGatewayInformation]
ReadPrec UpdateGatewayInformation
Int -> ReadS UpdateGatewayInformation
ReadS [UpdateGatewayInformation]
(Int -> ReadS UpdateGatewayInformation)
-> ReadS [UpdateGatewayInformation]
-> ReadPrec UpdateGatewayInformation
-> ReadPrec [UpdateGatewayInformation]
-> Read UpdateGatewayInformation
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateGatewayInformation]
$creadListPrec :: ReadPrec [UpdateGatewayInformation]
readPrec :: ReadPrec UpdateGatewayInformation
$creadPrec :: ReadPrec UpdateGatewayInformation
readList :: ReadS [UpdateGatewayInformation]
$creadList :: ReadS [UpdateGatewayInformation]
readsPrec :: Int -> ReadS UpdateGatewayInformation
$creadsPrec :: Int -> ReadS UpdateGatewayInformation
Prelude.Read, Int -> UpdateGatewayInformation -> ShowS
[UpdateGatewayInformation] -> ShowS
UpdateGatewayInformation -> String
(Int -> UpdateGatewayInformation -> ShowS)
-> (UpdateGatewayInformation -> String)
-> ([UpdateGatewayInformation] -> ShowS)
-> Show UpdateGatewayInformation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateGatewayInformation] -> ShowS
$cshowList :: [UpdateGatewayInformation] -> ShowS
show :: UpdateGatewayInformation -> String
$cshow :: UpdateGatewayInformation -> String
showsPrec :: Int -> UpdateGatewayInformation -> ShowS
$cshowsPrec :: Int -> UpdateGatewayInformation -> ShowS
Prelude.Show, (forall x.
 UpdateGatewayInformation -> Rep UpdateGatewayInformation x)
-> (forall x.
    Rep UpdateGatewayInformation x -> UpdateGatewayInformation)
-> Generic UpdateGatewayInformation
forall x.
Rep UpdateGatewayInformation x -> UpdateGatewayInformation
forall x.
UpdateGatewayInformation -> Rep UpdateGatewayInformation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateGatewayInformation x -> UpdateGatewayInformation
$cfrom :: forall x.
UpdateGatewayInformation -> Rep UpdateGatewayInformation x
Prelude.Generic)

-- |
-- Create a value of 'UpdateGatewayInformation' 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:
--
-- 'gatewayCapacity', 'updateGatewayInformation_gatewayCapacity' - Specifies the size of the gateway\'s metadata cache.
--
-- 'gatewayName', 'updateGatewayInformation_gatewayName' - Undocumented member.
--
-- 'gatewayTimezone', 'updateGatewayInformation_gatewayTimezone' - A value that indicates the time zone of the gateway.
--
-- 'cloudWatchLogGroupARN', 'updateGatewayInformation_cloudWatchLogGroupARN' - The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that
-- you want to use to monitor and log events in the gateway.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html What is Amazon CloudWatch Logs?>
--
-- 'gatewayARN', 'updateGatewayInformation_gatewayARN' - Undocumented member.
newUpdateGatewayInformation ::
  -- | 'gatewayARN'
  Prelude.Text ->
  UpdateGatewayInformation
newUpdateGatewayInformation :: Text -> UpdateGatewayInformation
newUpdateGatewayInformation Text
pGatewayARN_ =
  UpdateGatewayInformation' :: Maybe GatewayCapacity
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Text
-> UpdateGatewayInformation
UpdateGatewayInformation'
    { $sel:gatewayCapacity:UpdateGatewayInformation' :: Maybe GatewayCapacity
gatewayCapacity =
        Maybe GatewayCapacity
forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayName:UpdateGatewayInformation' :: Maybe Text
gatewayName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayTimezone:UpdateGatewayInformation' :: Maybe Text
gatewayTimezone = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:cloudWatchLogGroupARN:UpdateGatewayInformation' :: Maybe Text
cloudWatchLogGroupARN = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayARN:UpdateGatewayInformation' :: Text
gatewayARN = Text
pGatewayARN_
    }

-- | Specifies the size of the gateway\'s metadata cache.
updateGatewayInformation_gatewayCapacity :: Lens.Lens' UpdateGatewayInformation (Prelude.Maybe GatewayCapacity)
updateGatewayInformation_gatewayCapacity :: (Maybe GatewayCapacity -> f (Maybe GatewayCapacity))
-> UpdateGatewayInformation -> f UpdateGatewayInformation
updateGatewayInformation_gatewayCapacity = (UpdateGatewayInformation -> Maybe GatewayCapacity)
-> (UpdateGatewayInformation
    -> Maybe GatewayCapacity -> UpdateGatewayInformation)
-> Lens
     UpdateGatewayInformation
     UpdateGatewayInformation
     (Maybe GatewayCapacity)
     (Maybe GatewayCapacity)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateGatewayInformation' {Maybe GatewayCapacity
gatewayCapacity :: Maybe GatewayCapacity
$sel:gatewayCapacity:UpdateGatewayInformation' :: UpdateGatewayInformation -> Maybe GatewayCapacity
gatewayCapacity} -> Maybe GatewayCapacity
gatewayCapacity) (\s :: UpdateGatewayInformation
s@UpdateGatewayInformation' {} Maybe GatewayCapacity
a -> UpdateGatewayInformation
s {$sel:gatewayCapacity:UpdateGatewayInformation' :: Maybe GatewayCapacity
gatewayCapacity = Maybe GatewayCapacity
a} :: UpdateGatewayInformation)

-- | Undocumented member.
updateGatewayInformation_gatewayName :: Lens.Lens' UpdateGatewayInformation (Prelude.Maybe Prelude.Text)
updateGatewayInformation_gatewayName :: (Maybe Text -> f (Maybe Text))
-> UpdateGatewayInformation -> f UpdateGatewayInformation
updateGatewayInformation_gatewayName = (UpdateGatewayInformation -> Maybe Text)
-> (UpdateGatewayInformation
    -> Maybe Text -> UpdateGatewayInformation)
-> Lens
     UpdateGatewayInformation
     UpdateGatewayInformation
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateGatewayInformation' {Maybe Text
gatewayName :: Maybe Text
$sel:gatewayName:UpdateGatewayInformation' :: UpdateGatewayInformation -> Maybe Text
gatewayName} -> Maybe Text
gatewayName) (\s :: UpdateGatewayInformation
s@UpdateGatewayInformation' {} Maybe Text
a -> UpdateGatewayInformation
s {$sel:gatewayName:UpdateGatewayInformation' :: Maybe Text
gatewayName = Maybe Text
a} :: UpdateGatewayInformation)

-- | A value that indicates the time zone of the gateway.
updateGatewayInformation_gatewayTimezone :: Lens.Lens' UpdateGatewayInformation (Prelude.Maybe Prelude.Text)
updateGatewayInformation_gatewayTimezone :: (Maybe Text -> f (Maybe Text))
-> UpdateGatewayInformation -> f UpdateGatewayInformation
updateGatewayInformation_gatewayTimezone = (UpdateGatewayInformation -> Maybe Text)
-> (UpdateGatewayInformation
    -> Maybe Text -> UpdateGatewayInformation)
-> Lens
     UpdateGatewayInformation
     UpdateGatewayInformation
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateGatewayInformation' {Maybe Text
gatewayTimezone :: Maybe Text
$sel:gatewayTimezone:UpdateGatewayInformation' :: UpdateGatewayInformation -> Maybe Text
gatewayTimezone} -> Maybe Text
gatewayTimezone) (\s :: UpdateGatewayInformation
s@UpdateGatewayInformation' {} Maybe Text
a -> UpdateGatewayInformation
s {$sel:gatewayTimezone:UpdateGatewayInformation' :: Maybe Text
gatewayTimezone = Maybe Text
a} :: UpdateGatewayInformation)

-- | The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that
-- you want to use to monitor and log events in the gateway.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html What is Amazon CloudWatch Logs?>
updateGatewayInformation_cloudWatchLogGroupARN :: Lens.Lens' UpdateGatewayInformation (Prelude.Maybe Prelude.Text)
updateGatewayInformation_cloudWatchLogGroupARN :: (Maybe Text -> f (Maybe Text))
-> UpdateGatewayInformation -> f UpdateGatewayInformation
updateGatewayInformation_cloudWatchLogGroupARN = (UpdateGatewayInformation -> Maybe Text)
-> (UpdateGatewayInformation
    -> Maybe Text -> UpdateGatewayInformation)
-> Lens
     UpdateGatewayInformation
     UpdateGatewayInformation
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateGatewayInformation' {Maybe Text
cloudWatchLogGroupARN :: Maybe Text
$sel:cloudWatchLogGroupARN:UpdateGatewayInformation' :: UpdateGatewayInformation -> Maybe Text
cloudWatchLogGroupARN} -> Maybe Text
cloudWatchLogGroupARN) (\s :: UpdateGatewayInformation
s@UpdateGatewayInformation' {} Maybe Text
a -> UpdateGatewayInformation
s {$sel:cloudWatchLogGroupARN:UpdateGatewayInformation' :: Maybe Text
cloudWatchLogGroupARN = Maybe Text
a} :: UpdateGatewayInformation)

-- | Undocumented member.
updateGatewayInformation_gatewayARN :: Lens.Lens' UpdateGatewayInformation Prelude.Text
updateGatewayInformation_gatewayARN :: (Text -> f Text)
-> UpdateGatewayInformation -> f UpdateGatewayInformation
updateGatewayInformation_gatewayARN = (UpdateGatewayInformation -> Text)
-> (UpdateGatewayInformation -> Text -> UpdateGatewayInformation)
-> Lens UpdateGatewayInformation UpdateGatewayInformation Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateGatewayInformation' {Text
gatewayARN :: Text
$sel:gatewayARN:UpdateGatewayInformation' :: UpdateGatewayInformation -> Text
gatewayARN} -> Text
gatewayARN) (\s :: UpdateGatewayInformation
s@UpdateGatewayInformation' {} Text
a -> UpdateGatewayInformation
s {$sel:gatewayARN:UpdateGatewayInformation' :: Text
gatewayARN = Text
a} :: UpdateGatewayInformation)

instance Core.AWSRequest UpdateGatewayInformation where
  type
    AWSResponse UpdateGatewayInformation =
      UpdateGatewayInformationResponse
  request :: UpdateGatewayInformation -> Request UpdateGatewayInformation
request = Service
-> UpdateGatewayInformation -> Request UpdateGatewayInformation
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy UpdateGatewayInformation
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateGatewayInformation)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse UpdateGatewayInformation))
-> Logger
-> Service
-> Proxy UpdateGatewayInformation
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateGatewayInformation)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text -> Maybe Text -> Int -> UpdateGatewayInformationResponse
UpdateGatewayInformationResponse'
            (Maybe Text
 -> Maybe Text -> Int -> UpdateGatewayInformationResponse)
-> Either String (Maybe Text)
-> Either
     String (Maybe Text -> Int -> UpdateGatewayInformationResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"GatewayARN")
            Either
  String (Maybe Text -> Int -> UpdateGatewayInformationResponse)
-> Either String (Maybe Text)
-> Either String (Int -> UpdateGatewayInformationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"GatewayName")
            Either String (Int -> UpdateGatewayInformationResponse)
-> Either String Int
-> Either String UpdateGatewayInformationResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable UpdateGatewayInformation

instance Prelude.NFData UpdateGatewayInformation

instance Core.ToHeaders UpdateGatewayInformation where
  toHeaders :: UpdateGatewayInformation -> ResponseHeaders
toHeaders =
    ResponseHeaders -> UpdateGatewayInformation -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"StorageGateway_20130630.UpdateGatewayInformation" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON UpdateGatewayInformation where
  toJSON :: UpdateGatewayInformation -> Value
toJSON UpdateGatewayInformation' {Maybe Text
Maybe GatewayCapacity
Text
gatewayARN :: Text
cloudWatchLogGroupARN :: Maybe Text
gatewayTimezone :: Maybe Text
gatewayName :: Maybe Text
gatewayCapacity :: Maybe GatewayCapacity
$sel:gatewayARN:UpdateGatewayInformation' :: UpdateGatewayInformation -> Text
$sel:cloudWatchLogGroupARN:UpdateGatewayInformation' :: UpdateGatewayInformation -> Maybe Text
$sel:gatewayTimezone:UpdateGatewayInformation' :: UpdateGatewayInformation -> Maybe Text
$sel:gatewayName:UpdateGatewayInformation' :: UpdateGatewayInformation -> Maybe Text
$sel:gatewayCapacity:UpdateGatewayInformation' :: UpdateGatewayInformation -> Maybe GatewayCapacity
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"GatewayCapacity" Text -> GatewayCapacity -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (GatewayCapacity -> Pair) -> Maybe GatewayCapacity -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GatewayCapacity
gatewayCapacity,
            (Text
"GatewayName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
gatewayName,
            (Text
"GatewayTimezone" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
gatewayTimezone,
            (Text
"CloudWatchLogGroupARN" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
cloudWatchLogGroupARN,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"GatewayARN" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
gatewayARN)
          ]
      )

instance Core.ToPath UpdateGatewayInformation where
  toPath :: UpdateGatewayInformation -> ByteString
toPath = ByteString -> UpdateGatewayInformation -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

-- | A JSON object containing the Amazon Resource Name (ARN) of the gateway
-- that was updated.
--
-- /See:/ 'newUpdateGatewayInformationResponse' smart constructor.
data UpdateGatewayInformationResponse = UpdateGatewayInformationResponse'
  { UpdateGatewayInformationResponse -> Maybe Text
gatewayARN :: Prelude.Maybe Prelude.Text,
    -- | The name you configured for your gateway.
    UpdateGatewayInformationResponse -> Maybe Text
gatewayName :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    UpdateGatewayInformationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateGatewayInformationResponse
-> UpdateGatewayInformationResponse -> Bool
(UpdateGatewayInformationResponse
 -> UpdateGatewayInformationResponse -> Bool)
-> (UpdateGatewayInformationResponse
    -> UpdateGatewayInformationResponse -> Bool)
-> Eq UpdateGatewayInformationResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateGatewayInformationResponse
-> UpdateGatewayInformationResponse -> Bool
$c/= :: UpdateGatewayInformationResponse
-> UpdateGatewayInformationResponse -> Bool
== :: UpdateGatewayInformationResponse
-> UpdateGatewayInformationResponse -> Bool
$c== :: UpdateGatewayInformationResponse
-> UpdateGatewayInformationResponse -> Bool
Prelude.Eq, ReadPrec [UpdateGatewayInformationResponse]
ReadPrec UpdateGatewayInformationResponse
Int -> ReadS UpdateGatewayInformationResponse
ReadS [UpdateGatewayInformationResponse]
(Int -> ReadS UpdateGatewayInformationResponse)
-> ReadS [UpdateGatewayInformationResponse]
-> ReadPrec UpdateGatewayInformationResponse
-> ReadPrec [UpdateGatewayInformationResponse]
-> Read UpdateGatewayInformationResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateGatewayInformationResponse]
$creadListPrec :: ReadPrec [UpdateGatewayInformationResponse]
readPrec :: ReadPrec UpdateGatewayInformationResponse
$creadPrec :: ReadPrec UpdateGatewayInformationResponse
readList :: ReadS [UpdateGatewayInformationResponse]
$creadList :: ReadS [UpdateGatewayInformationResponse]
readsPrec :: Int -> ReadS UpdateGatewayInformationResponse
$creadsPrec :: Int -> ReadS UpdateGatewayInformationResponse
Prelude.Read, Int -> UpdateGatewayInformationResponse -> ShowS
[UpdateGatewayInformationResponse] -> ShowS
UpdateGatewayInformationResponse -> String
(Int -> UpdateGatewayInformationResponse -> ShowS)
-> (UpdateGatewayInformationResponse -> String)
-> ([UpdateGatewayInformationResponse] -> ShowS)
-> Show UpdateGatewayInformationResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateGatewayInformationResponse] -> ShowS
$cshowList :: [UpdateGatewayInformationResponse] -> ShowS
show :: UpdateGatewayInformationResponse -> String
$cshow :: UpdateGatewayInformationResponse -> String
showsPrec :: Int -> UpdateGatewayInformationResponse -> ShowS
$cshowsPrec :: Int -> UpdateGatewayInformationResponse -> ShowS
Prelude.Show, (forall x.
 UpdateGatewayInformationResponse
 -> Rep UpdateGatewayInformationResponse x)
-> (forall x.
    Rep UpdateGatewayInformationResponse x
    -> UpdateGatewayInformationResponse)
-> Generic UpdateGatewayInformationResponse
forall x.
Rep UpdateGatewayInformationResponse x
-> UpdateGatewayInformationResponse
forall x.
UpdateGatewayInformationResponse
-> Rep UpdateGatewayInformationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateGatewayInformationResponse x
-> UpdateGatewayInformationResponse
$cfrom :: forall x.
UpdateGatewayInformationResponse
-> Rep UpdateGatewayInformationResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateGatewayInformationResponse' 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:
--
-- 'gatewayARN', 'updateGatewayInformationResponse_gatewayARN' - Undocumented member.
--
-- 'gatewayName', 'updateGatewayInformationResponse_gatewayName' - The name you configured for your gateway.
--
-- 'httpStatus', 'updateGatewayInformationResponse_httpStatus' - The response's http status code.
newUpdateGatewayInformationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateGatewayInformationResponse
newUpdateGatewayInformationResponse :: Int -> UpdateGatewayInformationResponse
newUpdateGatewayInformationResponse Int
pHttpStatus_ =
  UpdateGatewayInformationResponse' :: Maybe Text -> Maybe Text -> Int -> UpdateGatewayInformationResponse
UpdateGatewayInformationResponse'
    { $sel:gatewayARN:UpdateGatewayInformationResponse' :: Maybe Text
gatewayARN =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayName:UpdateGatewayInformationResponse' :: Maybe Text
gatewayName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateGatewayInformationResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Undocumented member.
updateGatewayInformationResponse_gatewayARN :: Lens.Lens' UpdateGatewayInformationResponse (Prelude.Maybe Prelude.Text)
updateGatewayInformationResponse_gatewayARN :: (Maybe Text -> f (Maybe Text))
-> UpdateGatewayInformationResponse
-> f UpdateGatewayInformationResponse
updateGatewayInformationResponse_gatewayARN = (UpdateGatewayInformationResponse -> Maybe Text)
-> (UpdateGatewayInformationResponse
    -> Maybe Text -> UpdateGatewayInformationResponse)
-> Lens
     UpdateGatewayInformationResponse
     UpdateGatewayInformationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateGatewayInformationResponse' {Maybe Text
gatewayARN :: Maybe Text
$sel:gatewayARN:UpdateGatewayInformationResponse' :: UpdateGatewayInformationResponse -> Maybe Text
gatewayARN} -> Maybe Text
gatewayARN) (\s :: UpdateGatewayInformationResponse
s@UpdateGatewayInformationResponse' {} Maybe Text
a -> UpdateGatewayInformationResponse
s {$sel:gatewayARN:UpdateGatewayInformationResponse' :: Maybe Text
gatewayARN = Maybe Text
a} :: UpdateGatewayInformationResponse)

-- | The name you configured for your gateway.
updateGatewayInformationResponse_gatewayName :: Lens.Lens' UpdateGatewayInformationResponse (Prelude.Maybe Prelude.Text)
updateGatewayInformationResponse_gatewayName :: (Maybe Text -> f (Maybe Text))
-> UpdateGatewayInformationResponse
-> f UpdateGatewayInformationResponse
updateGatewayInformationResponse_gatewayName = (UpdateGatewayInformationResponse -> Maybe Text)
-> (UpdateGatewayInformationResponse
    -> Maybe Text -> UpdateGatewayInformationResponse)
-> Lens
     UpdateGatewayInformationResponse
     UpdateGatewayInformationResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateGatewayInformationResponse' {Maybe Text
gatewayName :: Maybe Text
$sel:gatewayName:UpdateGatewayInformationResponse' :: UpdateGatewayInformationResponse -> Maybe Text
gatewayName} -> Maybe Text
gatewayName) (\s :: UpdateGatewayInformationResponse
s@UpdateGatewayInformationResponse' {} Maybe Text
a -> UpdateGatewayInformationResponse
s {$sel:gatewayName:UpdateGatewayInformationResponse' :: Maybe Text
gatewayName = Maybe Text
a} :: UpdateGatewayInformationResponse)

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

instance
  Prelude.NFData
    UpdateGatewayInformationResponse