{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

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

-- |
-- Module      : Amazonka.IoTWireless.Types.WirelessGatewayIdType
-- 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)
module Amazonka.IoTWireless.Types.WirelessGatewayIdType
  ( WirelessGatewayIdType
      ( ..,
        WirelessGatewayIdType_GatewayEui,
        WirelessGatewayIdType_ThingName,
        WirelessGatewayIdType_WirelessGatewayId
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude

newtype WirelessGatewayIdType = WirelessGatewayIdType'
  { WirelessGatewayIdType -> Text
fromWirelessGatewayIdType ::
      Core.Text
  }
  deriving stock
    ( Int -> WirelessGatewayIdType -> ShowS
[WirelessGatewayIdType] -> ShowS
WirelessGatewayIdType -> String
(Int -> WirelessGatewayIdType -> ShowS)
-> (WirelessGatewayIdType -> String)
-> ([WirelessGatewayIdType] -> ShowS)
-> Show WirelessGatewayIdType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WirelessGatewayIdType] -> ShowS
$cshowList :: [WirelessGatewayIdType] -> ShowS
show :: WirelessGatewayIdType -> String
$cshow :: WirelessGatewayIdType -> String
showsPrec :: Int -> WirelessGatewayIdType -> ShowS
$cshowsPrec :: Int -> WirelessGatewayIdType -> ShowS
Prelude.Show,
      ReadPrec [WirelessGatewayIdType]
ReadPrec WirelessGatewayIdType
Int -> ReadS WirelessGatewayIdType
ReadS [WirelessGatewayIdType]
(Int -> ReadS WirelessGatewayIdType)
-> ReadS [WirelessGatewayIdType]
-> ReadPrec WirelessGatewayIdType
-> ReadPrec [WirelessGatewayIdType]
-> Read WirelessGatewayIdType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [WirelessGatewayIdType]
$creadListPrec :: ReadPrec [WirelessGatewayIdType]
readPrec :: ReadPrec WirelessGatewayIdType
$creadPrec :: ReadPrec WirelessGatewayIdType
readList :: ReadS [WirelessGatewayIdType]
$creadList :: ReadS [WirelessGatewayIdType]
readsPrec :: Int -> ReadS WirelessGatewayIdType
$creadsPrec :: Int -> ReadS WirelessGatewayIdType
Prelude.Read,
      WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
(WirelessGatewayIdType -> WirelessGatewayIdType -> Bool)
-> (WirelessGatewayIdType -> WirelessGatewayIdType -> Bool)
-> Eq WirelessGatewayIdType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
$c/= :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
== :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
$c== :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
Prelude.Eq,
      Eq WirelessGatewayIdType
Eq WirelessGatewayIdType
-> (WirelessGatewayIdType -> WirelessGatewayIdType -> Ordering)
-> (WirelessGatewayIdType -> WirelessGatewayIdType -> Bool)
-> (WirelessGatewayIdType -> WirelessGatewayIdType -> Bool)
-> (WirelessGatewayIdType -> WirelessGatewayIdType -> Bool)
-> (WirelessGatewayIdType -> WirelessGatewayIdType -> Bool)
-> (WirelessGatewayIdType
    -> WirelessGatewayIdType -> WirelessGatewayIdType)
-> (WirelessGatewayIdType
    -> WirelessGatewayIdType -> WirelessGatewayIdType)
-> Ord WirelessGatewayIdType
WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
WirelessGatewayIdType -> WirelessGatewayIdType -> Ordering
WirelessGatewayIdType
-> WirelessGatewayIdType -> WirelessGatewayIdType
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: WirelessGatewayIdType
-> WirelessGatewayIdType -> WirelessGatewayIdType
$cmin :: WirelessGatewayIdType
-> WirelessGatewayIdType -> WirelessGatewayIdType
max :: WirelessGatewayIdType
-> WirelessGatewayIdType -> WirelessGatewayIdType
$cmax :: WirelessGatewayIdType
-> WirelessGatewayIdType -> WirelessGatewayIdType
>= :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
$c>= :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
> :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
$c> :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
<= :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
$c<= :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
< :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
$c< :: WirelessGatewayIdType -> WirelessGatewayIdType -> Bool
compare :: WirelessGatewayIdType -> WirelessGatewayIdType -> Ordering
$ccompare :: WirelessGatewayIdType -> WirelessGatewayIdType -> Ordering
$cp1Ord :: Eq WirelessGatewayIdType
Prelude.Ord,
      (forall x. WirelessGatewayIdType -> Rep WirelessGatewayIdType x)
-> (forall x. Rep WirelessGatewayIdType x -> WirelessGatewayIdType)
-> Generic WirelessGatewayIdType
forall x. Rep WirelessGatewayIdType x -> WirelessGatewayIdType
forall x. WirelessGatewayIdType -> Rep WirelessGatewayIdType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep WirelessGatewayIdType x -> WirelessGatewayIdType
$cfrom :: forall x. WirelessGatewayIdType -> Rep WirelessGatewayIdType x
Prelude.Generic
    )
  deriving newtype
    ( Int -> WirelessGatewayIdType -> Int
WirelessGatewayIdType -> Int
(Int -> WirelessGatewayIdType -> Int)
-> (WirelessGatewayIdType -> Int) -> Hashable WirelessGatewayIdType
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: WirelessGatewayIdType -> Int
$chash :: WirelessGatewayIdType -> Int
hashWithSalt :: Int -> WirelessGatewayIdType -> Int
$chashWithSalt :: Int -> WirelessGatewayIdType -> Int
Prelude.Hashable,
      WirelessGatewayIdType -> ()
(WirelessGatewayIdType -> ()) -> NFData WirelessGatewayIdType
forall a. (a -> ()) -> NFData a
rnf :: WirelessGatewayIdType -> ()
$crnf :: WirelessGatewayIdType -> ()
Prelude.NFData,
      Text -> Either String WirelessGatewayIdType
(Text -> Either String WirelessGatewayIdType)
-> FromText WirelessGatewayIdType
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String WirelessGatewayIdType
$cfromText :: Text -> Either String WirelessGatewayIdType
Core.FromText,
      WirelessGatewayIdType -> Text
(WirelessGatewayIdType -> Text) -> ToText WirelessGatewayIdType
forall a. (a -> Text) -> ToText a
toText :: WirelessGatewayIdType -> Text
$ctoText :: WirelessGatewayIdType -> Text
Core.ToText,
      WirelessGatewayIdType -> ByteString
(WirelessGatewayIdType -> ByteString)
-> ToByteString WirelessGatewayIdType
forall a. (a -> ByteString) -> ToByteString a
toBS :: WirelessGatewayIdType -> ByteString
$ctoBS :: WirelessGatewayIdType -> ByteString
Core.ToByteString,
      WirelessGatewayIdType -> ByteStringBuilder
(WirelessGatewayIdType -> ByteStringBuilder)
-> ToLog WirelessGatewayIdType
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: WirelessGatewayIdType -> ByteStringBuilder
$cbuild :: WirelessGatewayIdType -> ByteStringBuilder
Core.ToLog,
      HeaderName -> WirelessGatewayIdType -> [Header]
(HeaderName -> WirelessGatewayIdType -> [Header])
-> ToHeader WirelessGatewayIdType
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> WirelessGatewayIdType -> [Header]
$ctoHeader :: HeaderName -> WirelessGatewayIdType -> [Header]
Core.ToHeader,
      WirelessGatewayIdType -> QueryString
(WirelessGatewayIdType -> QueryString)
-> ToQuery WirelessGatewayIdType
forall a. (a -> QueryString) -> ToQuery a
toQuery :: WirelessGatewayIdType -> QueryString
$ctoQuery :: WirelessGatewayIdType -> QueryString
Core.ToQuery,
      Value -> Parser [WirelessGatewayIdType]
Value -> Parser WirelessGatewayIdType
(Value -> Parser WirelessGatewayIdType)
-> (Value -> Parser [WirelessGatewayIdType])
-> FromJSON WirelessGatewayIdType
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [WirelessGatewayIdType]
$cparseJSONList :: Value -> Parser [WirelessGatewayIdType]
parseJSON :: Value -> Parser WirelessGatewayIdType
$cparseJSON :: Value -> Parser WirelessGatewayIdType
Core.FromJSON,
      FromJSONKeyFunction [WirelessGatewayIdType]
FromJSONKeyFunction WirelessGatewayIdType
FromJSONKeyFunction WirelessGatewayIdType
-> FromJSONKeyFunction [WirelessGatewayIdType]
-> FromJSONKey WirelessGatewayIdType
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [WirelessGatewayIdType]
$cfromJSONKeyList :: FromJSONKeyFunction [WirelessGatewayIdType]
fromJSONKey :: FromJSONKeyFunction WirelessGatewayIdType
$cfromJSONKey :: FromJSONKeyFunction WirelessGatewayIdType
Core.FromJSONKey,
      [WirelessGatewayIdType] -> Encoding
[WirelessGatewayIdType] -> Value
WirelessGatewayIdType -> Encoding
WirelessGatewayIdType -> Value
(WirelessGatewayIdType -> Value)
-> (WirelessGatewayIdType -> Encoding)
-> ([WirelessGatewayIdType] -> Value)
-> ([WirelessGatewayIdType] -> Encoding)
-> ToJSON WirelessGatewayIdType
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [WirelessGatewayIdType] -> Encoding
$ctoEncodingList :: [WirelessGatewayIdType] -> Encoding
toJSONList :: [WirelessGatewayIdType] -> Value
$ctoJSONList :: [WirelessGatewayIdType] -> Value
toEncoding :: WirelessGatewayIdType -> Encoding
$ctoEncoding :: WirelessGatewayIdType -> Encoding
toJSON :: WirelessGatewayIdType -> Value
$ctoJSON :: WirelessGatewayIdType -> Value
Core.ToJSON,
      ToJSONKeyFunction [WirelessGatewayIdType]
ToJSONKeyFunction WirelessGatewayIdType
ToJSONKeyFunction WirelessGatewayIdType
-> ToJSONKeyFunction [WirelessGatewayIdType]
-> ToJSONKey WirelessGatewayIdType
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [WirelessGatewayIdType]
$ctoJSONKeyList :: ToJSONKeyFunction [WirelessGatewayIdType]
toJSONKey :: ToJSONKeyFunction WirelessGatewayIdType
$ctoJSONKey :: ToJSONKeyFunction WirelessGatewayIdType
Core.ToJSONKey,
      [Node] -> Either String WirelessGatewayIdType
([Node] -> Either String WirelessGatewayIdType)
-> FromXML WirelessGatewayIdType
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String WirelessGatewayIdType
$cparseXML :: [Node] -> Either String WirelessGatewayIdType
Core.FromXML,
      WirelessGatewayIdType -> XML
(WirelessGatewayIdType -> XML) -> ToXML WirelessGatewayIdType
forall a. (a -> XML) -> ToXML a
toXML :: WirelessGatewayIdType -> XML
$ctoXML :: WirelessGatewayIdType -> XML
Core.ToXML
    )

pattern WirelessGatewayIdType_GatewayEui :: WirelessGatewayIdType
pattern $bWirelessGatewayIdType_GatewayEui :: WirelessGatewayIdType
$mWirelessGatewayIdType_GatewayEui :: forall r.
WirelessGatewayIdType -> (Void# -> r) -> (Void# -> r) -> r
WirelessGatewayIdType_GatewayEui = WirelessGatewayIdType' "GatewayEui"

pattern WirelessGatewayIdType_ThingName :: WirelessGatewayIdType
pattern $bWirelessGatewayIdType_ThingName :: WirelessGatewayIdType
$mWirelessGatewayIdType_ThingName :: forall r.
WirelessGatewayIdType -> (Void# -> r) -> (Void# -> r) -> r
WirelessGatewayIdType_ThingName = WirelessGatewayIdType' "ThingName"

pattern WirelessGatewayIdType_WirelessGatewayId :: WirelessGatewayIdType
pattern $bWirelessGatewayIdType_WirelessGatewayId :: WirelessGatewayIdType
$mWirelessGatewayIdType_WirelessGatewayId :: forall r.
WirelessGatewayIdType -> (Void# -> r) -> (Void# -> r) -> r
WirelessGatewayIdType_WirelessGatewayId = WirelessGatewayIdType' "WirelessGatewayId"

{-# COMPLETE
  WirelessGatewayIdType_GatewayEui,
  WirelessGatewayIdType_ThingName,
  WirelessGatewayIdType_WirelessGatewayId,
  WirelessGatewayIdType'
  #-}