{-# 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.DescribeGatewayInformation
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns metadata about a gateway such as its name, network interfaces,
-- configured time zone, and the state (whether the gateway is running or
-- not). To specify which gateway to describe, use the Amazon Resource Name
-- (ARN) of the gateway in your request.
module Amazonka.StorageGateway.DescribeGatewayInformation
  ( -- * Creating a Request
    DescribeGatewayInformation (..),
    newDescribeGatewayInformation,

    -- * Request Lenses
    describeGatewayInformation_gatewayARN,

    -- * Destructuring the Response
    DescribeGatewayInformationResponse (..),
    newDescribeGatewayInformationResponse,

    -- * Response Lenses
    describeGatewayInformationResponse_cloudWatchLogGroupARN,
    describeGatewayInformationResponse_deprecationDate,
    describeGatewayInformationResponse_ec2InstanceId,
    describeGatewayInformationResponse_ec2InstanceRegion,
    describeGatewayInformationResponse_endpointType,
    describeGatewayInformationResponse_gatewayARN,
    describeGatewayInformationResponse_gatewayCapacity,
    describeGatewayInformationResponse_gatewayId,
    describeGatewayInformationResponse_gatewayName,
    describeGatewayInformationResponse_gatewayNetworkInterfaces,
    describeGatewayInformationResponse_gatewayState,
    describeGatewayInformationResponse_gatewayTimezone,
    describeGatewayInformationResponse_gatewayType,
    describeGatewayInformationResponse_hostEnvironment,
    describeGatewayInformationResponse_hostEnvironmentId,
    describeGatewayInformationResponse_lastSoftwareUpdate,
    describeGatewayInformationResponse_nextUpdateAvailabilityDate,
    describeGatewayInformationResponse_softwareUpdatesEndDate,
    describeGatewayInformationResponse_supportedGatewayCapacities,
    describeGatewayInformationResponse_tags,
    describeGatewayInformationResponse_vPCEndpoint,
    describeGatewayInformationResponse_httpStatus,
  )
where

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
import Amazonka.StorageGateway.Types

-- | A JSON object containing the ID of the gateway.
--
-- /See:/ 'newDescribeGatewayInformation' smart constructor.
data DescribeGatewayInformation = DescribeGatewayInformation'
  { DescribeGatewayInformation -> Text
gatewayARN :: Prelude.Text
  }
  deriving (DescribeGatewayInformation -> DescribeGatewayInformation -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeGatewayInformation -> DescribeGatewayInformation -> Bool
$c/= :: DescribeGatewayInformation -> DescribeGatewayInformation -> Bool
== :: DescribeGatewayInformation -> DescribeGatewayInformation -> Bool
$c== :: DescribeGatewayInformation -> DescribeGatewayInformation -> Bool
Prelude.Eq, ReadPrec [DescribeGatewayInformation]
ReadPrec DescribeGatewayInformation
Int -> ReadS DescribeGatewayInformation
ReadS [DescribeGatewayInformation]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeGatewayInformation]
$creadListPrec :: ReadPrec [DescribeGatewayInformation]
readPrec :: ReadPrec DescribeGatewayInformation
$creadPrec :: ReadPrec DescribeGatewayInformation
readList :: ReadS [DescribeGatewayInformation]
$creadList :: ReadS [DescribeGatewayInformation]
readsPrec :: Int -> ReadS DescribeGatewayInformation
$creadsPrec :: Int -> ReadS DescribeGatewayInformation
Prelude.Read, Int -> DescribeGatewayInformation -> ShowS
[DescribeGatewayInformation] -> ShowS
DescribeGatewayInformation -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeGatewayInformation] -> ShowS
$cshowList :: [DescribeGatewayInformation] -> ShowS
show :: DescribeGatewayInformation -> String
$cshow :: DescribeGatewayInformation -> String
showsPrec :: Int -> DescribeGatewayInformation -> ShowS
$cshowsPrec :: Int -> DescribeGatewayInformation -> ShowS
Prelude.Show, forall x.
Rep DescribeGatewayInformation x -> DescribeGatewayInformation
forall x.
DescribeGatewayInformation -> Rep DescribeGatewayInformation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeGatewayInformation x -> DescribeGatewayInformation
$cfrom :: forall x.
DescribeGatewayInformation -> Rep DescribeGatewayInformation x
Prelude.Generic)

-- |
-- Create a value of 'DescribeGatewayInformation' 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', 'describeGatewayInformation_gatewayARN' - Undocumented member.
newDescribeGatewayInformation ::
  -- | 'gatewayARN'
  Prelude.Text ->
  DescribeGatewayInformation
newDescribeGatewayInformation :: Text -> DescribeGatewayInformation
newDescribeGatewayInformation Text
pGatewayARN_ =
  DescribeGatewayInformation'
    { $sel:gatewayARN:DescribeGatewayInformation' :: Text
gatewayARN =
        Text
pGatewayARN_
    }

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

instance Core.AWSRequest DescribeGatewayInformation where
  type
    AWSResponse DescribeGatewayInformation =
      DescribeGatewayInformationResponse
  request :: (Service -> Service)
-> DescribeGatewayInformation -> Request DescribeGatewayInformation
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 DescribeGatewayInformation
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeGatewayInformation)))
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 Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe GatewayCapacity
-> Maybe Text
-> Maybe Text
-> Maybe [NetworkInterface]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe HostEnvironment
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [GatewayCapacity]
-> Maybe [Tag]
-> Maybe Text
-> Int
-> DescribeGatewayInformationResponse
DescribeGatewayInformationResponse'
            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
"CloudWatchLogGroupARN")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"DeprecationDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Ec2InstanceId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Ec2InstanceRegion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EndpointType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"GatewayARN")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"GatewayCapacity")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"GatewayId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"GatewayName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"GatewayNetworkInterfaces"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"GatewayState")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"GatewayTimezone")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"GatewayType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"HostEnvironment")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"HostEnvironmentId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LastSoftwareUpdate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"NextUpdateAvailabilityDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"SoftwareUpdatesEndDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"SupportedGatewayCapacities"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Tags" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"VPCEndpoint")
            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 DescribeGatewayInformation where
  hashWithSalt :: Int -> DescribeGatewayInformation -> Int
hashWithSalt Int
_salt DescribeGatewayInformation' {Text
gatewayARN :: Text
$sel:gatewayARN:DescribeGatewayInformation' :: DescribeGatewayInformation -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
gatewayARN

instance Prelude.NFData DescribeGatewayInformation where
  rnf :: DescribeGatewayInformation -> ()
rnf DescribeGatewayInformation' {Text
gatewayARN :: Text
$sel:gatewayARN:DescribeGatewayInformation' :: DescribeGatewayInformation -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
gatewayARN

instance Data.ToHeaders DescribeGatewayInformation where
  toHeaders :: DescribeGatewayInformation -> 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
"StorageGateway_20130630.DescribeGatewayInformation" ::
                          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 DescribeGatewayInformation where
  toJSON :: DescribeGatewayInformation -> Value
toJSON DescribeGatewayInformation' {Text
gatewayARN :: Text
$sel:gatewayARN:DescribeGatewayInformation' :: DescribeGatewayInformation -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [forall a. a -> Maybe a
Prelude.Just (Key
"GatewayARN" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
gatewayARN)]
      )

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

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

-- | A JSON object containing the following fields:
--
-- /See:/ 'newDescribeGatewayInformationResponse' smart constructor.
data DescribeGatewayInformationResponse = DescribeGatewayInformationResponse'
  { -- | The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that
    -- is used to monitor events in the gateway. This field only only exist and
    -- returns once it have been chosen and set by the SGW service, based on
    -- the OS version of the gateway VM
    DescribeGatewayInformationResponse -> Maybe Text
cloudWatchLogGroupARN :: Prelude.Maybe Prelude.Text,
    -- | Date after which this gateway will not receive software updates for new
    -- features and bug fixes.
    DescribeGatewayInformationResponse -> Maybe Text
deprecationDate :: Prelude.Maybe Prelude.Text,
    -- | The ID of the Amazon EC2 instance that was used to launch the gateway.
    DescribeGatewayInformationResponse -> Maybe Text
ec2InstanceId :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services Region where the Amazon EC2 instance is located.
    DescribeGatewayInformationResponse -> Maybe Text
ec2InstanceRegion :: Prelude.Maybe Prelude.Text,
    -- | The type of endpoint for your gateway.
    --
    -- Valid Values: @STANDARD@ | @FIPS@
    DescribeGatewayInformationResponse -> Maybe Text
endpointType :: Prelude.Maybe Prelude.Text,
    DescribeGatewayInformationResponse -> Maybe Text
gatewayARN :: Prelude.Maybe Prelude.Text,
    -- | Specifies the size of the gateway\'s metadata cache.
    DescribeGatewayInformationResponse -> Maybe GatewayCapacity
gatewayCapacity :: Prelude.Maybe GatewayCapacity,
    -- | The unique identifier assigned to your gateway during activation. This
    -- ID becomes part of the gateway Amazon Resource Name (ARN), which you use
    -- as input for other operations.
    DescribeGatewayInformationResponse -> Maybe Text
gatewayId :: Prelude.Maybe Prelude.Text,
    -- | The name you configured for your gateway.
    DescribeGatewayInformationResponse -> Maybe Text
gatewayName :: Prelude.Maybe Prelude.Text,
    -- | A NetworkInterface array that contains descriptions of the gateway
    -- network interfaces.
    DescribeGatewayInformationResponse -> Maybe [NetworkInterface]
gatewayNetworkInterfaces :: Prelude.Maybe [NetworkInterface],
    -- | A value that indicates the operating state of the gateway.
    DescribeGatewayInformationResponse -> Maybe Text
gatewayState :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates the time zone configured for the gateway.
    DescribeGatewayInformationResponse -> Maybe Text
gatewayTimezone :: Prelude.Maybe Prelude.Text,
    -- | The type of the gateway.
    DescribeGatewayInformationResponse -> Maybe Text
gatewayType :: Prelude.Maybe Prelude.Text,
    -- | The type of hardware or software platform on which the gateway is
    -- running.
    DescribeGatewayInformationResponse -> Maybe HostEnvironment
hostEnvironment :: Prelude.Maybe HostEnvironment,
    -- | A unique identifier for the specific instance of the host platform
    -- running the gateway. This value is only available for certain host
    -- environments, and its format depends on the host environment type.
    DescribeGatewayInformationResponse -> Maybe Text
hostEnvironmentId :: Prelude.Maybe Prelude.Text,
    -- | The date on which the last software update was applied to the gateway.
    -- If the gateway has never been updated, this field does not return a
    -- value in the response. This only only exist and returns once it have
    -- been chosen and set by the SGW service, based on the OS version of the
    -- gateway VM
    DescribeGatewayInformationResponse -> Maybe Text
lastSoftwareUpdate :: Prelude.Maybe Prelude.Text,
    -- | The date on which an update to the gateway is available. This date is in
    -- the time zone of the gateway. If the gateway is not available for an
    -- update this field is not returned in the response.
    DescribeGatewayInformationResponse -> Maybe Text
nextUpdateAvailabilityDate :: Prelude.Maybe Prelude.Text,
    -- | Date after which this gateway will not receive software updates for new
    -- features.
    DescribeGatewayInformationResponse -> Maybe Text
softwareUpdatesEndDate :: Prelude.Maybe Prelude.Text,
    -- | A list of the metadata cache sizes that the gateway can support based on
    -- its current hardware specifications.
    DescribeGatewayInformationResponse -> Maybe [GatewayCapacity]
supportedGatewayCapacities :: Prelude.Maybe [GatewayCapacity],
    -- | A list of up to 50 tags assigned to the gateway, sorted alphabetically
    -- by key name. Each tag is a key-value pair. For a gateway with more than
    -- 10 tags assigned, you can view all tags using the @ListTagsForResource@
    -- API operation.
    DescribeGatewayInformationResponse -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The configuration settings for the virtual private cloud (VPC) endpoint
    -- for your gateway.
    DescribeGatewayInformationResponse -> Maybe Text
vPCEndpoint :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeGatewayInformationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeGatewayInformationResponse
-> DescribeGatewayInformationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeGatewayInformationResponse
-> DescribeGatewayInformationResponse -> Bool
$c/= :: DescribeGatewayInformationResponse
-> DescribeGatewayInformationResponse -> Bool
== :: DescribeGatewayInformationResponse
-> DescribeGatewayInformationResponse -> Bool
$c== :: DescribeGatewayInformationResponse
-> DescribeGatewayInformationResponse -> Bool
Prelude.Eq, ReadPrec [DescribeGatewayInformationResponse]
ReadPrec DescribeGatewayInformationResponse
Int -> ReadS DescribeGatewayInformationResponse
ReadS [DescribeGatewayInformationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeGatewayInformationResponse]
$creadListPrec :: ReadPrec [DescribeGatewayInformationResponse]
readPrec :: ReadPrec DescribeGatewayInformationResponse
$creadPrec :: ReadPrec DescribeGatewayInformationResponse
readList :: ReadS [DescribeGatewayInformationResponse]
$creadList :: ReadS [DescribeGatewayInformationResponse]
readsPrec :: Int -> ReadS DescribeGatewayInformationResponse
$creadsPrec :: Int -> ReadS DescribeGatewayInformationResponse
Prelude.Read, Int -> DescribeGatewayInformationResponse -> ShowS
[DescribeGatewayInformationResponse] -> ShowS
DescribeGatewayInformationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeGatewayInformationResponse] -> ShowS
$cshowList :: [DescribeGatewayInformationResponse] -> ShowS
show :: DescribeGatewayInformationResponse -> String
$cshow :: DescribeGatewayInformationResponse -> String
showsPrec :: Int -> DescribeGatewayInformationResponse -> ShowS
$cshowsPrec :: Int -> DescribeGatewayInformationResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeGatewayInformationResponse x
-> DescribeGatewayInformationResponse
forall x.
DescribeGatewayInformationResponse
-> Rep DescribeGatewayInformationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeGatewayInformationResponse x
-> DescribeGatewayInformationResponse
$cfrom :: forall x.
DescribeGatewayInformationResponse
-> Rep DescribeGatewayInformationResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeGatewayInformationResponse' 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:
--
-- 'cloudWatchLogGroupARN', 'describeGatewayInformationResponse_cloudWatchLogGroupARN' - The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that
-- is used to monitor events in the gateway. This field only only exist and
-- returns once it have been chosen and set by the SGW service, based on
-- the OS version of the gateway VM
--
-- 'deprecationDate', 'describeGatewayInformationResponse_deprecationDate' - Date after which this gateway will not receive software updates for new
-- features and bug fixes.
--
-- 'ec2InstanceId', 'describeGatewayInformationResponse_ec2InstanceId' - The ID of the Amazon EC2 instance that was used to launch the gateway.
--
-- 'ec2InstanceRegion', 'describeGatewayInformationResponse_ec2InstanceRegion' - The Amazon Web Services Region where the Amazon EC2 instance is located.
--
-- 'endpointType', 'describeGatewayInformationResponse_endpointType' - The type of endpoint for your gateway.
--
-- Valid Values: @STANDARD@ | @FIPS@
--
-- 'gatewayARN', 'describeGatewayInformationResponse_gatewayARN' - Undocumented member.
--
-- 'gatewayCapacity', 'describeGatewayInformationResponse_gatewayCapacity' - Specifies the size of the gateway\'s metadata cache.
--
-- 'gatewayId', 'describeGatewayInformationResponse_gatewayId' - The unique identifier assigned to your gateway during activation. This
-- ID becomes part of the gateway Amazon Resource Name (ARN), which you use
-- as input for other operations.
--
-- 'gatewayName', 'describeGatewayInformationResponse_gatewayName' - The name you configured for your gateway.
--
-- 'gatewayNetworkInterfaces', 'describeGatewayInformationResponse_gatewayNetworkInterfaces' - A NetworkInterface array that contains descriptions of the gateway
-- network interfaces.
--
-- 'gatewayState', 'describeGatewayInformationResponse_gatewayState' - A value that indicates the operating state of the gateway.
--
-- 'gatewayTimezone', 'describeGatewayInformationResponse_gatewayTimezone' - A value that indicates the time zone configured for the gateway.
--
-- 'gatewayType', 'describeGatewayInformationResponse_gatewayType' - The type of the gateway.
--
-- 'hostEnvironment', 'describeGatewayInformationResponse_hostEnvironment' - The type of hardware or software platform on which the gateway is
-- running.
--
-- 'hostEnvironmentId', 'describeGatewayInformationResponse_hostEnvironmentId' - A unique identifier for the specific instance of the host platform
-- running the gateway. This value is only available for certain host
-- environments, and its format depends on the host environment type.
--
-- 'lastSoftwareUpdate', 'describeGatewayInformationResponse_lastSoftwareUpdate' - The date on which the last software update was applied to the gateway.
-- If the gateway has never been updated, this field does not return a
-- value in the response. This only only exist and returns once it have
-- been chosen and set by the SGW service, based on the OS version of the
-- gateway VM
--
-- 'nextUpdateAvailabilityDate', 'describeGatewayInformationResponse_nextUpdateAvailabilityDate' - The date on which an update to the gateway is available. This date is in
-- the time zone of the gateway. If the gateway is not available for an
-- update this field is not returned in the response.
--
-- 'softwareUpdatesEndDate', 'describeGatewayInformationResponse_softwareUpdatesEndDate' - Date after which this gateway will not receive software updates for new
-- features.
--
-- 'supportedGatewayCapacities', 'describeGatewayInformationResponse_supportedGatewayCapacities' - A list of the metadata cache sizes that the gateway can support based on
-- its current hardware specifications.
--
-- 'tags', 'describeGatewayInformationResponse_tags' - A list of up to 50 tags assigned to the gateway, sorted alphabetically
-- by key name. Each tag is a key-value pair. For a gateway with more than
-- 10 tags assigned, you can view all tags using the @ListTagsForResource@
-- API operation.
--
-- 'vPCEndpoint', 'describeGatewayInformationResponse_vPCEndpoint' - The configuration settings for the virtual private cloud (VPC) endpoint
-- for your gateway.
--
-- 'httpStatus', 'describeGatewayInformationResponse_httpStatus' - The response's http status code.
newDescribeGatewayInformationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeGatewayInformationResponse
newDescribeGatewayInformationResponse :: Int -> DescribeGatewayInformationResponse
newDescribeGatewayInformationResponse Int
pHttpStatus_ =
  DescribeGatewayInformationResponse'
    { $sel:cloudWatchLogGroupARN:DescribeGatewayInformationResponse' :: Maybe Text
cloudWatchLogGroupARN =
        forall a. Maybe a
Prelude.Nothing,
      $sel:deprecationDate:DescribeGatewayInformationResponse' :: Maybe Text
deprecationDate = forall a. Maybe a
Prelude.Nothing,
      $sel:ec2InstanceId:DescribeGatewayInformationResponse' :: Maybe Text
ec2InstanceId = forall a. Maybe a
Prelude.Nothing,
      $sel:ec2InstanceRegion:DescribeGatewayInformationResponse' :: Maybe Text
ec2InstanceRegion = forall a. Maybe a
Prelude.Nothing,
      $sel:endpointType:DescribeGatewayInformationResponse' :: Maybe Text
endpointType = forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayARN:DescribeGatewayInformationResponse' :: Maybe Text
gatewayARN = forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayCapacity:DescribeGatewayInformationResponse' :: Maybe GatewayCapacity
gatewayCapacity = forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayId:DescribeGatewayInformationResponse' :: Maybe Text
gatewayId = forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayName:DescribeGatewayInformationResponse' :: Maybe Text
gatewayName = forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayNetworkInterfaces:DescribeGatewayInformationResponse' :: Maybe [NetworkInterface]
gatewayNetworkInterfaces =
        forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayState:DescribeGatewayInformationResponse' :: Maybe Text
gatewayState = forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayTimezone:DescribeGatewayInformationResponse' :: Maybe Text
gatewayTimezone = forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayType:DescribeGatewayInformationResponse' :: Maybe Text
gatewayType = forall a. Maybe a
Prelude.Nothing,
      $sel:hostEnvironment:DescribeGatewayInformationResponse' :: Maybe HostEnvironment
hostEnvironment = forall a. Maybe a
Prelude.Nothing,
      $sel:hostEnvironmentId:DescribeGatewayInformationResponse' :: Maybe Text
hostEnvironmentId = forall a. Maybe a
Prelude.Nothing,
      $sel:lastSoftwareUpdate:DescribeGatewayInformationResponse' :: Maybe Text
lastSoftwareUpdate = forall a. Maybe a
Prelude.Nothing,
      $sel:nextUpdateAvailabilityDate:DescribeGatewayInformationResponse' :: Maybe Text
nextUpdateAvailabilityDate =
        forall a. Maybe a
Prelude.Nothing,
      $sel:softwareUpdatesEndDate:DescribeGatewayInformationResponse' :: Maybe Text
softwareUpdatesEndDate =
        forall a. Maybe a
Prelude.Nothing,
      $sel:supportedGatewayCapacities:DescribeGatewayInformationResponse' :: Maybe [GatewayCapacity]
supportedGatewayCapacities =
        forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeGatewayInformationResponse' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:vPCEndpoint:DescribeGatewayInformationResponse' :: Maybe Text
vPCEndpoint = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeGatewayInformationResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that
-- is used to monitor events in the gateway. This field only only exist and
-- returns once it have been chosen and set by the SGW service, based on
-- the OS version of the gateway VM
describeGatewayInformationResponse_cloudWatchLogGroupARN :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_cloudWatchLogGroupARN :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_cloudWatchLogGroupARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
cloudWatchLogGroupARN :: Maybe Text
$sel:cloudWatchLogGroupARN:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
cloudWatchLogGroupARN} -> Maybe Text
cloudWatchLogGroupARN) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:cloudWatchLogGroupARN:DescribeGatewayInformationResponse' :: Maybe Text
cloudWatchLogGroupARN = Maybe Text
a} :: DescribeGatewayInformationResponse)

-- | Date after which this gateway will not receive software updates for new
-- features and bug fixes.
describeGatewayInformationResponse_deprecationDate :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_deprecationDate :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_deprecationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
deprecationDate :: Maybe Text
$sel:deprecationDate:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
deprecationDate} -> Maybe Text
deprecationDate) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:deprecationDate:DescribeGatewayInformationResponse' :: Maybe Text
deprecationDate = Maybe Text
a} :: DescribeGatewayInformationResponse)

-- | The ID of the Amazon EC2 instance that was used to launch the gateway.
describeGatewayInformationResponse_ec2InstanceId :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_ec2InstanceId :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_ec2InstanceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
ec2InstanceId :: Maybe Text
$sel:ec2InstanceId:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
ec2InstanceId} -> Maybe Text
ec2InstanceId) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:ec2InstanceId:DescribeGatewayInformationResponse' :: Maybe Text
ec2InstanceId = Maybe Text
a} :: DescribeGatewayInformationResponse)

-- | The Amazon Web Services Region where the Amazon EC2 instance is located.
describeGatewayInformationResponse_ec2InstanceRegion :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_ec2InstanceRegion :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_ec2InstanceRegion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
ec2InstanceRegion :: Maybe Text
$sel:ec2InstanceRegion:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
ec2InstanceRegion} -> Maybe Text
ec2InstanceRegion) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:ec2InstanceRegion:DescribeGatewayInformationResponse' :: Maybe Text
ec2InstanceRegion = Maybe Text
a} :: DescribeGatewayInformationResponse)

-- | The type of endpoint for your gateway.
--
-- Valid Values: @STANDARD@ | @FIPS@
describeGatewayInformationResponse_endpointType :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_endpointType :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_endpointType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
endpointType :: Maybe Text
$sel:endpointType:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
endpointType} -> Maybe Text
endpointType) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:endpointType:DescribeGatewayInformationResponse' :: Maybe Text
endpointType = Maybe Text
a} :: DescribeGatewayInformationResponse)

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

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

-- | The unique identifier assigned to your gateway during activation. This
-- ID becomes part of the gateway Amazon Resource Name (ARN), which you use
-- as input for other operations.
describeGatewayInformationResponse_gatewayId :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_gatewayId :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_gatewayId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
gatewayId :: Maybe Text
$sel:gatewayId:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
gatewayId} -> Maybe Text
gatewayId) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:gatewayId:DescribeGatewayInformationResponse' :: Maybe Text
gatewayId = Maybe Text
a} :: DescribeGatewayInformationResponse)

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

-- | A NetworkInterface array that contains descriptions of the gateway
-- network interfaces.
describeGatewayInformationResponse_gatewayNetworkInterfaces :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe [NetworkInterface])
describeGatewayInformationResponse_gatewayNetworkInterfaces :: Lens' DescribeGatewayInformationResponse (Maybe [NetworkInterface])
describeGatewayInformationResponse_gatewayNetworkInterfaces = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe [NetworkInterface]
gatewayNetworkInterfaces :: Maybe [NetworkInterface]
$sel:gatewayNetworkInterfaces:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe [NetworkInterface]
gatewayNetworkInterfaces} -> Maybe [NetworkInterface]
gatewayNetworkInterfaces) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe [NetworkInterface]
a -> DescribeGatewayInformationResponse
s {$sel:gatewayNetworkInterfaces:DescribeGatewayInformationResponse' :: Maybe [NetworkInterface]
gatewayNetworkInterfaces = Maybe [NetworkInterface]
a} :: DescribeGatewayInformationResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A value that indicates the operating state of the gateway.
describeGatewayInformationResponse_gatewayState :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_gatewayState :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_gatewayState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
gatewayState :: Maybe Text
$sel:gatewayState:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
gatewayState} -> Maybe Text
gatewayState) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:gatewayState:DescribeGatewayInformationResponse' :: Maybe Text
gatewayState = Maybe Text
a} :: DescribeGatewayInformationResponse)

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

-- | The type of the gateway.
describeGatewayInformationResponse_gatewayType :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_gatewayType :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_gatewayType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
gatewayType :: Maybe Text
$sel:gatewayType:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
gatewayType} -> Maybe Text
gatewayType) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:gatewayType:DescribeGatewayInformationResponse' :: Maybe Text
gatewayType = Maybe Text
a} :: DescribeGatewayInformationResponse)

-- | The type of hardware or software platform on which the gateway is
-- running.
describeGatewayInformationResponse_hostEnvironment :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe HostEnvironment)
describeGatewayInformationResponse_hostEnvironment :: Lens' DescribeGatewayInformationResponse (Maybe HostEnvironment)
describeGatewayInformationResponse_hostEnvironment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe HostEnvironment
hostEnvironment :: Maybe HostEnvironment
$sel:hostEnvironment:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe HostEnvironment
hostEnvironment} -> Maybe HostEnvironment
hostEnvironment) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe HostEnvironment
a -> DescribeGatewayInformationResponse
s {$sel:hostEnvironment:DescribeGatewayInformationResponse' :: Maybe HostEnvironment
hostEnvironment = Maybe HostEnvironment
a} :: DescribeGatewayInformationResponse)

-- | A unique identifier for the specific instance of the host platform
-- running the gateway. This value is only available for certain host
-- environments, and its format depends on the host environment type.
describeGatewayInformationResponse_hostEnvironmentId :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_hostEnvironmentId :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_hostEnvironmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
hostEnvironmentId :: Maybe Text
$sel:hostEnvironmentId:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
hostEnvironmentId} -> Maybe Text
hostEnvironmentId) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:hostEnvironmentId:DescribeGatewayInformationResponse' :: Maybe Text
hostEnvironmentId = Maybe Text
a} :: DescribeGatewayInformationResponse)

-- | The date on which the last software update was applied to the gateway.
-- If the gateway has never been updated, this field does not return a
-- value in the response. This only only exist and returns once it have
-- been chosen and set by the SGW service, based on the OS version of the
-- gateway VM
describeGatewayInformationResponse_lastSoftwareUpdate :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_lastSoftwareUpdate :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_lastSoftwareUpdate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
lastSoftwareUpdate :: Maybe Text
$sel:lastSoftwareUpdate:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
lastSoftwareUpdate} -> Maybe Text
lastSoftwareUpdate) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:lastSoftwareUpdate:DescribeGatewayInformationResponse' :: Maybe Text
lastSoftwareUpdate = Maybe Text
a} :: DescribeGatewayInformationResponse)

-- | The date on which an update to the gateway is available. This date is in
-- the time zone of the gateway. If the gateway is not available for an
-- update this field is not returned in the response.
describeGatewayInformationResponse_nextUpdateAvailabilityDate :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_nextUpdateAvailabilityDate :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_nextUpdateAvailabilityDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
nextUpdateAvailabilityDate :: Maybe Text
$sel:nextUpdateAvailabilityDate:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
nextUpdateAvailabilityDate} -> Maybe Text
nextUpdateAvailabilityDate) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:nextUpdateAvailabilityDate:DescribeGatewayInformationResponse' :: Maybe Text
nextUpdateAvailabilityDate = Maybe Text
a} :: DescribeGatewayInformationResponse)

-- | Date after which this gateway will not receive software updates for new
-- features.
describeGatewayInformationResponse_softwareUpdatesEndDate :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_softwareUpdatesEndDate :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_softwareUpdatesEndDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
softwareUpdatesEndDate :: Maybe Text
$sel:softwareUpdatesEndDate:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
softwareUpdatesEndDate} -> Maybe Text
softwareUpdatesEndDate) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:softwareUpdatesEndDate:DescribeGatewayInformationResponse' :: Maybe Text
softwareUpdatesEndDate = Maybe Text
a} :: DescribeGatewayInformationResponse)

-- | A list of the metadata cache sizes that the gateway can support based on
-- its current hardware specifications.
describeGatewayInformationResponse_supportedGatewayCapacities :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe [GatewayCapacity])
describeGatewayInformationResponse_supportedGatewayCapacities :: Lens' DescribeGatewayInformationResponse (Maybe [GatewayCapacity])
describeGatewayInformationResponse_supportedGatewayCapacities = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe [GatewayCapacity]
supportedGatewayCapacities :: Maybe [GatewayCapacity]
$sel:supportedGatewayCapacities:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe [GatewayCapacity]
supportedGatewayCapacities} -> Maybe [GatewayCapacity]
supportedGatewayCapacities) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe [GatewayCapacity]
a -> DescribeGatewayInformationResponse
s {$sel:supportedGatewayCapacities:DescribeGatewayInformationResponse' :: Maybe [GatewayCapacity]
supportedGatewayCapacities = Maybe [GatewayCapacity]
a} :: DescribeGatewayInformationResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A list of up to 50 tags assigned to the gateway, sorted alphabetically
-- by key name. Each tag is a key-value pair. For a gateway with more than
-- 10 tags assigned, you can view all tags using the @ListTagsForResource@
-- API operation.
describeGatewayInformationResponse_tags :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe [Tag])
describeGatewayInformationResponse_tags :: Lens' DescribeGatewayInformationResponse (Maybe [Tag])
describeGatewayInformationResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe [Tag]
a -> DescribeGatewayInformationResponse
s {$sel:tags:DescribeGatewayInformationResponse' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: DescribeGatewayInformationResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The configuration settings for the virtual private cloud (VPC) endpoint
-- for your gateway.
describeGatewayInformationResponse_vPCEndpoint :: Lens.Lens' DescribeGatewayInformationResponse (Prelude.Maybe Prelude.Text)
describeGatewayInformationResponse_vPCEndpoint :: Lens' DescribeGatewayInformationResponse (Maybe Text)
describeGatewayInformationResponse_vPCEndpoint = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayInformationResponse' {Maybe Text
vPCEndpoint :: Maybe Text
$sel:vPCEndpoint:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
vPCEndpoint} -> Maybe Text
vPCEndpoint) (\s :: DescribeGatewayInformationResponse
s@DescribeGatewayInformationResponse' {} Maybe Text
a -> DescribeGatewayInformationResponse
s {$sel:vPCEndpoint:DescribeGatewayInformationResponse' :: Maybe Text
vPCEndpoint = Maybe Text
a} :: DescribeGatewayInformationResponse)

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

instance
  Prelude.NFData
    DescribeGatewayInformationResponse
  where
  rnf :: DescribeGatewayInformationResponse -> ()
rnf DescribeGatewayInformationResponse' {Int
Maybe [GatewayCapacity]
Maybe [NetworkInterface]
Maybe [Tag]
Maybe Text
Maybe GatewayCapacity
Maybe HostEnvironment
httpStatus :: Int
vPCEndpoint :: Maybe Text
tags :: Maybe [Tag]
supportedGatewayCapacities :: Maybe [GatewayCapacity]
softwareUpdatesEndDate :: Maybe Text
nextUpdateAvailabilityDate :: Maybe Text
lastSoftwareUpdate :: Maybe Text
hostEnvironmentId :: Maybe Text
hostEnvironment :: Maybe HostEnvironment
gatewayType :: Maybe Text
gatewayTimezone :: Maybe Text
gatewayState :: Maybe Text
gatewayNetworkInterfaces :: Maybe [NetworkInterface]
gatewayName :: Maybe Text
gatewayId :: Maybe Text
gatewayCapacity :: Maybe GatewayCapacity
gatewayARN :: Maybe Text
endpointType :: Maybe Text
ec2InstanceRegion :: Maybe Text
ec2InstanceId :: Maybe Text
deprecationDate :: Maybe Text
cloudWatchLogGroupARN :: Maybe Text
$sel:httpStatus:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Int
$sel:vPCEndpoint:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:tags:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe [Tag]
$sel:supportedGatewayCapacities:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe [GatewayCapacity]
$sel:softwareUpdatesEndDate:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:nextUpdateAvailabilityDate:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:lastSoftwareUpdate:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:hostEnvironmentId:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:hostEnvironment:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe HostEnvironment
$sel:gatewayType:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:gatewayTimezone:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:gatewayState:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:gatewayNetworkInterfaces:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe [NetworkInterface]
$sel:gatewayName:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:gatewayId:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:gatewayCapacity:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe GatewayCapacity
$sel:gatewayARN:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:endpointType:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:ec2InstanceRegion:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:ec2InstanceId:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:deprecationDate:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
$sel:cloudWatchLogGroupARN:DescribeGatewayInformationResponse' :: DescribeGatewayInformationResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
cloudWatchLogGroupARN
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
deprecationDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ec2InstanceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ec2InstanceRegion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
endpointType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
gatewayARN
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe GatewayCapacity
gatewayCapacity
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
gatewayId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
gatewayName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [NetworkInterface]
gatewayNetworkInterfaces
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
gatewayState
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
gatewayTimezone
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
gatewayType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HostEnvironment
hostEnvironment
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
hostEnvironmentId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastSoftwareUpdate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
nextUpdateAvailabilityDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
softwareUpdatesEndDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [GatewayCapacity]
supportedGatewayCapacities
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vPCEndpoint
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus