{-# 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.InstanceAttributeType
-- 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.InstanceAttributeType
  ( InstanceAttributeType
      ( ..,
        InstanceAttributeType_AUTO_RESOLVE_BEST_VOICES,
        InstanceAttributeType_CONTACTFLOW_LOGS,
        InstanceAttributeType_CONTACT_LENS,
        InstanceAttributeType_EARLY_MEDIA,
        InstanceAttributeType_INBOUND_CALLS,
        InstanceAttributeType_OUTBOUND_CALLS,
        InstanceAttributeType_USE_CUSTOM_TTS_VOICES
      ),
  )
where

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

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

pattern InstanceAttributeType_AUTO_RESOLVE_BEST_VOICES :: InstanceAttributeType
pattern $bInstanceAttributeType_AUTO_RESOLVE_BEST_VOICES :: InstanceAttributeType
$mInstanceAttributeType_AUTO_RESOLVE_BEST_VOICES :: forall r.
InstanceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
InstanceAttributeType_AUTO_RESOLVE_BEST_VOICES = InstanceAttributeType' "AUTO_RESOLVE_BEST_VOICES"

pattern InstanceAttributeType_CONTACTFLOW_LOGS :: InstanceAttributeType
pattern $bInstanceAttributeType_CONTACTFLOW_LOGS :: InstanceAttributeType
$mInstanceAttributeType_CONTACTFLOW_LOGS :: forall r.
InstanceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
InstanceAttributeType_CONTACTFLOW_LOGS = InstanceAttributeType' "CONTACTFLOW_LOGS"

pattern InstanceAttributeType_CONTACT_LENS :: InstanceAttributeType
pattern $bInstanceAttributeType_CONTACT_LENS :: InstanceAttributeType
$mInstanceAttributeType_CONTACT_LENS :: forall r.
InstanceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
InstanceAttributeType_CONTACT_LENS = InstanceAttributeType' "CONTACT_LENS"

pattern InstanceAttributeType_EARLY_MEDIA :: InstanceAttributeType
pattern $bInstanceAttributeType_EARLY_MEDIA :: InstanceAttributeType
$mInstanceAttributeType_EARLY_MEDIA :: forall r.
InstanceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
InstanceAttributeType_EARLY_MEDIA = InstanceAttributeType' "EARLY_MEDIA"

pattern InstanceAttributeType_INBOUND_CALLS :: InstanceAttributeType
pattern $bInstanceAttributeType_INBOUND_CALLS :: InstanceAttributeType
$mInstanceAttributeType_INBOUND_CALLS :: forall r.
InstanceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
InstanceAttributeType_INBOUND_CALLS = InstanceAttributeType' "INBOUND_CALLS"

pattern InstanceAttributeType_OUTBOUND_CALLS :: InstanceAttributeType
pattern $bInstanceAttributeType_OUTBOUND_CALLS :: InstanceAttributeType
$mInstanceAttributeType_OUTBOUND_CALLS :: forall r.
InstanceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
InstanceAttributeType_OUTBOUND_CALLS = InstanceAttributeType' "OUTBOUND_CALLS"

pattern InstanceAttributeType_USE_CUSTOM_TTS_VOICES :: InstanceAttributeType
pattern $bInstanceAttributeType_USE_CUSTOM_TTS_VOICES :: InstanceAttributeType
$mInstanceAttributeType_USE_CUSTOM_TTS_VOICES :: forall r.
InstanceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
InstanceAttributeType_USE_CUSTOM_TTS_VOICES = InstanceAttributeType' "USE_CUSTOM_TTS_VOICES"

{-# COMPLETE
  InstanceAttributeType_AUTO_RESOLVE_BEST_VOICES,
  InstanceAttributeType_CONTACTFLOW_LOGS,
  InstanceAttributeType_CONTACT_LENS,
  InstanceAttributeType_EARLY_MEDIA,
  InstanceAttributeType_INBOUND_CALLS,
  InstanceAttributeType_OUTBOUND_CALLS,
  InstanceAttributeType_USE_CUSTOM_TTS_VOICES,
  InstanceAttributeType'
  #-}