{-# 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.SnowDeviceManagement.Types.PhysicalConnectorType
-- 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.SnowDeviceManagement.Types.PhysicalConnectorType
  ( PhysicalConnectorType
      ( ..,
        PhysicalConnectorType_QSFP,
        PhysicalConnectorType_RJ45,
        PhysicalConnectorType_RJ45_2,
        PhysicalConnectorType_SFP_PLUS,
        PhysicalConnectorType_WIFI
      ),
  )
where

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

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

pattern PhysicalConnectorType_QSFP :: PhysicalConnectorType
pattern $bPhysicalConnectorType_QSFP :: PhysicalConnectorType
$mPhysicalConnectorType_QSFP :: forall r.
PhysicalConnectorType -> (Void# -> r) -> (Void# -> r) -> r
PhysicalConnectorType_QSFP = PhysicalConnectorType' "QSFP"

pattern PhysicalConnectorType_RJ45 :: PhysicalConnectorType
pattern $bPhysicalConnectorType_RJ45 :: PhysicalConnectorType
$mPhysicalConnectorType_RJ45 :: forall r.
PhysicalConnectorType -> (Void# -> r) -> (Void# -> r) -> r
PhysicalConnectorType_RJ45 = PhysicalConnectorType' "RJ45"

pattern PhysicalConnectorType_RJ45_2 :: PhysicalConnectorType
pattern $bPhysicalConnectorType_RJ45_2 :: PhysicalConnectorType
$mPhysicalConnectorType_RJ45_2 :: forall r.
PhysicalConnectorType -> (Void# -> r) -> (Void# -> r) -> r
PhysicalConnectorType_RJ45_2 = PhysicalConnectorType' "RJ45_2"

pattern PhysicalConnectorType_SFP_PLUS :: PhysicalConnectorType
pattern $bPhysicalConnectorType_SFP_PLUS :: PhysicalConnectorType
$mPhysicalConnectorType_SFP_PLUS :: forall r.
PhysicalConnectorType -> (Void# -> r) -> (Void# -> r) -> r
PhysicalConnectorType_SFP_PLUS = PhysicalConnectorType' "SFP_PLUS"

pattern PhysicalConnectorType_WIFI :: PhysicalConnectorType
pattern $bPhysicalConnectorType_WIFI :: PhysicalConnectorType
$mPhysicalConnectorType_WIFI :: forall r.
PhysicalConnectorType -> (Void# -> r) -> (Void# -> r) -> r
PhysicalConnectorType_WIFI = PhysicalConnectorType' "WIFI"

{-# COMPLETE
  PhysicalConnectorType_QSFP,
  PhysicalConnectorType_RJ45,
  PhysicalConnectorType_RJ45_2,
  PhysicalConnectorType_SFP_PLUS,
  PhysicalConnectorType_WIFI,
  PhysicalConnectorType'
  #-}