{-# 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.Connect.Types.ReferenceType
-- 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.Connect.Types.ReferenceType
  ( ReferenceType
      ( ..,
        ReferenceType_URL
      ),
  )
where

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

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

pattern ReferenceType_URL :: ReferenceType
pattern $bReferenceType_URL :: ReferenceType
$mReferenceType_URL :: forall r. ReferenceType -> (Void# -> r) -> (Void# -> r) -> r
ReferenceType_URL = ReferenceType' "URL"

{-# COMPLETE
  ReferenceType_URL,
  ReferenceType'
  #-}