{-# 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.IoTWireless.GetWirelessGateway
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets information about a wireless gateway.
module Amazonka.IoTWireless.GetWirelessGateway
  ( -- * Creating a Request
    GetWirelessGateway (..),
    newGetWirelessGateway,

    -- * Request Lenses
    getWirelessGateway_identifier,
    getWirelessGateway_identifierType,

    -- * Destructuring the Response
    GetWirelessGatewayResponse (..),
    newGetWirelessGatewayResponse,

    -- * Response Lenses
    getWirelessGatewayResponse_arn,
    getWirelessGatewayResponse_description,
    getWirelessGatewayResponse_id,
    getWirelessGatewayResponse_loRaWAN,
    getWirelessGatewayResponse_name,
    getWirelessGatewayResponse_thingArn,
    getWirelessGatewayResponse_thingName,
    getWirelessGatewayResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTWireless.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newGetWirelessGateway' smart constructor.
data GetWirelessGateway = GetWirelessGateway'
  { -- | The identifier of the wireless gateway to get.
    GetWirelessGateway -> Text
identifier :: Prelude.Text,
    -- | The type of identifier used in @identifier@.
    GetWirelessGateway -> WirelessGatewayIdType
identifierType :: WirelessGatewayIdType
  }
  deriving (GetWirelessGateway -> GetWirelessGateway -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetWirelessGateway -> GetWirelessGateway -> Bool
$c/= :: GetWirelessGateway -> GetWirelessGateway -> Bool
== :: GetWirelessGateway -> GetWirelessGateway -> Bool
$c== :: GetWirelessGateway -> GetWirelessGateway -> Bool
Prelude.Eq, ReadPrec [GetWirelessGateway]
ReadPrec GetWirelessGateway
Int -> ReadS GetWirelessGateway
ReadS [GetWirelessGateway]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetWirelessGateway]
$creadListPrec :: ReadPrec [GetWirelessGateway]
readPrec :: ReadPrec GetWirelessGateway
$creadPrec :: ReadPrec GetWirelessGateway
readList :: ReadS [GetWirelessGateway]
$creadList :: ReadS [GetWirelessGateway]
readsPrec :: Int -> ReadS GetWirelessGateway
$creadsPrec :: Int -> ReadS GetWirelessGateway
Prelude.Read, Int -> GetWirelessGateway -> ShowS
[GetWirelessGateway] -> ShowS
GetWirelessGateway -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetWirelessGateway] -> ShowS
$cshowList :: [GetWirelessGateway] -> ShowS
show :: GetWirelessGateway -> String
$cshow :: GetWirelessGateway -> String
showsPrec :: Int -> GetWirelessGateway -> ShowS
$cshowsPrec :: Int -> GetWirelessGateway -> ShowS
Prelude.Show, forall x. Rep GetWirelessGateway x -> GetWirelessGateway
forall x. GetWirelessGateway -> Rep GetWirelessGateway x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetWirelessGateway x -> GetWirelessGateway
$cfrom :: forall x. GetWirelessGateway -> Rep GetWirelessGateway x
Prelude.Generic)

-- |
-- Create a value of 'GetWirelessGateway' 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:
--
-- 'identifier', 'getWirelessGateway_identifier' - The identifier of the wireless gateway to get.
--
-- 'identifierType', 'getWirelessGateway_identifierType' - The type of identifier used in @identifier@.
newGetWirelessGateway ::
  -- | 'identifier'
  Prelude.Text ->
  -- | 'identifierType'
  WirelessGatewayIdType ->
  GetWirelessGateway
newGetWirelessGateway :: Text -> WirelessGatewayIdType -> GetWirelessGateway
newGetWirelessGateway Text
pIdentifier_ WirelessGatewayIdType
pIdentifierType_ =
  GetWirelessGateway'
    { $sel:identifier:GetWirelessGateway' :: Text
identifier = Text
pIdentifier_,
      $sel:identifierType:GetWirelessGateway' :: WirelessGatewayIdType
identifierType = WirelessGatewayIdType
pIdentifierType_
    }

-- | The identifier of the wireless gateway to get.
getWirelessGateway_identifier :: Lens.Lens' GetWirelessGateway Prelude.Text
getWirelessGateway_identifier :: Lens' GetWirelessGateway Text
getWirelessGateway_identifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWirelessGateway' {Text
identifier :: Text
$sel:identifier:GetWirelessGateway' :: GetWirelessGateway -> Text
identifier} -> Text
identifier) (\s :: GetWirelessGateway
s@GetWirelessGateway' {} Text
a -> GetWirelessGateway
s {$sel:identifier:GetWirelessGateway' :: Text
identifier = Text
a} :: GetWirelessGateway)

-- | The type of identifier used in @identifier@.
getWirelessGateway_identifierType :: Lens.Lens' GetWirelessGateway WirelessGatewayIdType
getWirelessGateway_identifierType :: Lens' GetWirelessGateway WirelessGatewayIdType
getWirelessGateway_identifierType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWirelessGateway' {WirelessGatewayIdType
identifierType :: WirelessGatewayIdType
$sel:identifierType:GetWirelessGateway' :: GetWirelessGateway -> WirelessGatewayIdType
identifierType} -> WirelessGatewayIdType
identifierType) (\s :: GetWirelessGateway
s@GetWirelessGateway' {} WirelessGatewayIdType
a -> GetWirelessGateway
s {$sel:identifierType:GetWirelessGateway' :: WirelessGatewayIdType
identifierType = WirelessGatewayIdType
a} :: GetWirelessGateway)

instance Core.AWSRequest GetWirelessGateway where
  type
    AWSResponse GetWirelessGateway =
      GetWirelessGatewayResponse
  request :: (Service -> Service)
-> GetWirelessGateway -> Request GetWirelessGateway
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetWirelessGateway
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetWirelessGateway)))
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 LoRaWANGateway
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> GetWirelessGatewayResponse
GetWirelessGatewayResponse'
            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
"Arn")
            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
"Description")
            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
"Id")
            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
"LoRaWAN")
            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
"Name")
            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
"ThingArn")
            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
"ThingName")
            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 GetWirelessGateway where
  hashWithSalt :: Int -> GetWirelessGateway -> Int
hashWithSalt Int
_salt GetWirelessGateway' {Text
WirelessGatewayIdType
identifierType :: WirelessGatewayIdType
identifier :: Text
$sel:identifierType:GetWirelessGateway' :: GetWirelessGateway -> WirelessGatewayIdType
$sel:identifier:GetWirelessGateway' :: GetWirelessGateway -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
identifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` WirelessGatewayIdType
identifierType

instance Prelude.NFData GetWirelessGateway where
  rnf :: GetWirelessGateway -> ()
rnf GetWirelessGateway' {Text
WirelessGatewayIdType
identifierType :: WirelessGatewayIdType
identifier :: Text
$sel:identifierType:GetWirelessGateway' :: GetWirelessGateway -> WirelessGatewayIdType
$sel:identifier:GetWirelessGateway' :: GetWirelessGateway -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
identifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf WirelessGatewayIdType
identifierType

instance Data.ToHeaders GetWirelessGateway where
  toHeaders :: GetWirelessGateway -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath GetWirelessGateway where
  toPath :: GetWirelessGateway -> ByteString
toPath GetWirelessGateway' {Text
WirelessGatewayIdType
identifierType :: WirelessGatewayIdType
identifier :: Text
$sel:identifierType:GetWirelessGateway' :: GetWirelessGateway -> WirelessGatewayIdType
$sel:identifier:GetWirelessGateway' :: GetWirelessGateway -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/wireless-gateways/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
identifier]

instance Data.ToQuery GetWirelessGateway where
  toQuery :: GetWirelessGateway -> QueryString
toQuery GetWirelessGateway' {Text
WirelessGatewayIdType
identifierType :: WirelessGatewayIdType
identifier :: Text
$sel:identifierType:GetWirelessGateway' :: GetWirelessGateway -> WirelessGatewayIdType
$sel:identifier:GetWirelessGateway' :: GetWirelessGateway -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"identifierType" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: WirelessGatewayIdType
identifierType]

-- | /See:/ 'newGetWirelessGatewayResponse' smart constructor.
data GetWirelessGatewayResponse = GetWirelessGatewayResponse'
  { -- | The Amazon Resource Name of the resource.
    GetWirelessGatewayResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The description of the resource.
    GetWirelessGatewayResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The ID of the wireless gateway.
    GetWirelessGatewayResponse -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | Information about the wireless gateway.
    GetWirelessGatewayResponse -> Maybe LoRaWANGateway
loRaWAN :: Prelude.Maybe LoRaWANGateway,
    -- | The name of the resource.
    GetWirelessGatewayResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the thing associated with the wireless gateway.
    GetWirelessGatewayResponse -> Maybe Text
thingArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the thing associated with the wireless gateway. The value is
    -- empty if a thing isn\'t associated with the gateway.
    GetWirelessGatewayResponse -> Maybe Text
thingName :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GetWirelessGatewayResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetWirelessGatewayResponse -> GetWirelessGatewayResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetWirelessGatewayResponse -> GetWirelessGatewayResponse -> Bool
$c/= :: GetWirelessGatewayResponse -> GetWirelessGatewayResponse -> Bool
== :: GetWirelessGatewayResponse -> GetWirelessGatewayResponse -> Bool
$c== :: GetWirelessGatewayResponse -> GetWirelessGatewayResponse -> Bool
Prelude.Eq, ReadPrec [GetWirelessGatewayResponse]
ReadPrec GetWirelessGatewayResponse
Int -> ReadS GetWirelessGatewayResponse
ReadS [GetWirelessGatewayResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetWirelessGatewayResponse]
$creadListPrec :: ReadPrec [GetWirelessGatewayResponse]
readPrec :: ReadPrec GetWirelessGatewayResponse
$creadPrec :: ReadPrec GetWirelessGatewayResponse
readList :: ReadS [GetWirelessGatewayResponse]
$creadList :: ReadS [GetWirelessGatewayResponse]
readsPrec :: Int -> ReadS GetWirelessGatewayResponse
$creadsPrec :: Int -> ReadS GetWirelessGatewayResponse
Prelude.Read, Int -> GetWirelessGatewayResponse -> ShowS
[GetWirelessGatewayResponse] -> ShowS
GetWirelessGatewayResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetWirelessGatewayResponse] -> ShowS
$cshowList :: [GetWirelessGatewayResponse] -> ShowS
show :: GetWirelessGatewayResponse -> String
$cshow :: GetWirelessGatewayResponse -> String
showsPrec :: Int -> GetWirelessGatewayResponse -> ShowS
$cshowsPrec :: Int -> GetWirelessGatewayResponse -> ShowS
Prelude.Show, forall x.
Rep GetWirelessGatewayResponse x -> GetWirelessGatewayResponse
forall x.
GetWirelessGatewayResponse -> Rep GetWirelessGatewayResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetWirelessGatewayResponse x -> GetWirelessGatewayResponse
$cfrom :: forall x.
GetWirelessGatewayResponse -> Rep GetWirelessGatewayResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetWirelessGatewayResponse' 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:
--
-- 'arn', 'getWirelessGatewayResponse_arn' - The Amazon Resource Name of the resource.
--
-- 'description', 'getWirelessGatewayResponse_description' - The description of the resource.
--
-- 'id', 'getWirelessGatewayResponse_id' - The ID of the wireless gateway.
--
-- 'loRaWAN', 'getWirelessGatewayResponse_loRaWAN' - Information about the wireless gateway.
--
-- 'name', 'getWirelessGatewayResponse_name' - The name of the resource.
--
-- 'thingArn', 'getWirelessGatewayResponse_thingArn' - The ARN of the thing associated with the wireless gateway.
--
-- 'thingName', 'getWirelessGatewayResponse_thingName' - The name of the thing associated with the wireless gateway. The value is
-- empty if a thing isn\'t associated with the gateway.
--
-- 'httpStatus', 'getWirelessGatewayResponse_httpStatus' - The response's http status code.
newGetWirelessGatewayResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetWirelessGatewayResponse
newGetWirelessGatewayResponse :: Int -> GetWirelessGatewayResponse
newGetWirelessGatewayResponse Int
pHttpStatus_ =
  GetWirelessGatewayResponse'
    { $sel:arn:GetWirelessGatewayResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:description:GetWirelessGatewayResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:id:GetWirelessGatewayResponse' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:loRaWAN:GetWirelessGatewayResponse' :: Maybe LoRaWANGateway
loRaWAN = forall a. Maybe a
Prelude.Nothing,
      $sel:name:GetWirelessGatewayResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:thingArn:GetWirelessGatewayResponse' :: Maybe Text
thingArn = forall a. Maybe a
Prelude.Nothing,
      $sel:thingName:GetWirelessGatewayResponse' :: Maybe Text
thingName = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetWirelessGatewayResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name of the resource.
getWirelessGatewayResponse_arn :: Lens.Lens' GetWirelessGatewayResponse (Prelude.Maybe Prelude.Text)
getWirelessGatewayResponse_arn :: Lens' GetWirelessGatewayResponse (Maybe Text)
getWirelessGatewayResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWirelessGatewayResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: GetWirelessGatewayResponse
s@GetWirelessGatewayResponse' {} Maybe Text
a -> GetWirelessGatewayResponse
s {$sel:arn:GetWirelessGatewayResponse' :: Maybe Text
arn = Maybe Text
a} :: GetWirelessGatewayResponse)

-- | The description of the resource.
getWirelessGatewayResponse_description :: Lens.Lens' GetWirelessGatewayResponse (Prelude.Maybe Prelude.Text)
getWirelessGatewayResponse_description :: Lens' GetWirelessGatewayResponse (Maybe Text)
getWirelessGatewayResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWirelessGatewayResponse' {Maybe Text
description :: Maybe Text
$sel:description:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: GetWirelessGatewayResponse
s@GetWirelessGatewayResponse' {} Maybe Text
a -> GetWirelessGatewayResponse
s {$sel:description:GetWirelessGatewayResponse' :: Maybe Text
description = Maybe Text
a} :: GetWirelessGatewayResponse)

-- | The ID of the wireless gateway.
getWirelessGatewayResponse_id :: Lens.Lens' GetWirelessGatewayResponse (Prelude.Maybe Prelude.Text)
getWirelessGatewayResponse_id :: Lens' GetWirelessGatewayResponse (Maybe Text)
getWirelessGatewayResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWirelessGatewayResponse' {Maybe Text
id :: Maybe Text
$sel:id:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
id} -> Maybe Text
id) (\s :: GetWirelessGatewayResponse
s@GetWirelessGatewayResponse' {} Maybe Text
a -> GetWirelessGatewayResponse
s {$sel:id:GetWirelessGatewayResponse' :: Maybe Text
id = Maybe Text
a} :: GetWirelessGatewayResponse)

-- | Information about the wireless gateway.
getWirelessGatewayResponse_loRaWAN :: Lens.Lens' GetWirelessGatewayResponse (Prelude.Maybe LoRaWANGateway)
getWirelessGatewayResponse_loRaWAN :: Lens' GetWirelessGatewayResponse (Maybe LoRaWANGateway)
getWirelessGatewayResponse_loRaWAN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWirelessGatewayResponse' {Maybe LoRaWANGateway
loRaWAN :: Maybe LoRaWANGateway
$sel:loRaWAN:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe LoRaWANGateway
loRaWAN} -> Maybe LoRaWANGateway
loRaWAN) (\s :: GetWirelessGatewayResponse
s@GetWirelessGatewayResponse' {} Maybe LoRaWANGateway
a -> GetWirelessGatewayResponse
s {$sel:loRaWAN:GetWirelessGatewayResponse' :: Maybe LoRaWANGateway
loRaWAN = Maybe LoRaWANGateway
a} :: GetWirelessGatewayResponse)

-- | The name of the resource.
getWirelessGatewayResponse_name :: Lens.Lens' GetWirelessGatewayResponse (Prelude.Maybe Prelude.Text)
getWirelessGatewayResponse_name :: Lens' GetWirelessGatewayResponse (Maybe Text)
getWirelessGatewayResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWirelessGatewayResponse' {Maybe Text
name :: Maybe Text
$sel:name:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: GetWirelessGatewayResponse
s@GetWirelessGatewayResponse' {} Maybe Text
a -> GetWirelessGatewayResponse
s {$sel:name:GetWirelessGatewayResponse' :: Maybe Text
name = Maybe Text
a} :: GetWirelessGatewayResponse)

-- | The ARN of the thing associated with the wireless gateway.
getWirelessGatewayResponse_thingArn :: Lens.Lens' GetWirelessGatewayResponse (Prelude.Maybe Prelude.Text)
getWirelessGatewayResponse_thingArn :: Lens' GetWirelessGatewayResponse (Maybe Text)
getWirelessGatewayResponse_thingArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWirelessGatewayResponse' {Maybe Text
thingArn :: Maybe Text
$sel:thingArn:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
thingArn} -> Maybe Text
thingArn) (\s :: GetWirelessGatewayResponse
s@GetWirelessGatewayResponse' {} Maybe Text
a -> GetWirelessGatewayResponse
s {$sel:thingArn:GetWirelessGatewayResponse' :: Maybe Text
thingArn = Maybe Text
a} :: GetWirelessGatewayResponse)

-- | The name of the thing associated with the wireless gateway. The value is
-- empty if a thing isn\'t associated with the gateway.
getWirelessGatewayResponse_thingName :: Lens.Lens' GetWirelessGatewayResponse (Prelude.Maybe Prelude.Text)
getWirelessGatewayResponse_thingName :: Lens' GetWirelessGatewayResponse (Maybe Text)
getWirelessGatewayResponse_thingName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetWirelessGatewayResponse' {Maybe Text
thingName :: Maybe Text
$sel:thingName:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
thingName} -> Maybe Text
thingName) (\s :: GetWirelessGatewayResponse
s@GetWirelessGatewayResponse' {} Maybe Text
a -> GetWirelessGatewayResponse
s {$sel:thingName:GetWirelessGatewayResponse' :: Maybe Text
thingName = Maybe Text
a} :: GetWirelessGatewayResponse)

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

instance Prelude.NFData GetWirelessGatewayResponse where
  rnf :: GetWirelessGatewayResponse -> ()
rnf GetWirelessGatewayResponse' {Int
Maybe Text
Maybe LoRaWANGateway
httpStatus :: Int
thingName :: Maybe Text
thingArn :: Maybe Text
name :: Maybe Text
loRaWAN :: Maybe LoRaWANGateway
id :: Maybe Text
description :: Maybe Text
arn :: Maybe Text
$sel:httpStatus:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Int
$sel:thingName:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
$sel:thingArn:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
$sel:name:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
$sel:loRaWAN:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe LoRaWANGateway
$sel:id:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
$sel:description:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
$sel:arn:GetWirelessGatewayResponse' :: GetWirelessGatewayResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LoRaWANGateway
loRaWAN
      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 Maybe Text
thingArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
thingName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus