{-# 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.CurrentMetricName
-- 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.CurrentMetricName
  ( CurrentMetricName
      ( ..,
        CurrentMetricName_AGENTS_AFTER_CONTACT_WORK,
        CurrentMetricName_AGENTS_AVAILABLE,
        CurrentMetricName_AGENTS_ERROR,
        CurrentMetricName_AGENTS_NON_PRODUCTIVE,
        CurrentMetricName_AGENTS_ONLINE,
        CurrentMetricName_AGENTS_ON_CALL,
        CurrentMetricName_AGENTS_ON_CONTACT,
        CurrentMetricName_AGENTS_STAFFED,
        CurrentMetricName_CONTACTS_IN_QUEUE,
        CurrentMetricName_CONTACTS_SCHEDULED,
        CurrentMetricName_OLDEST_CONTACT_AGE,
        CurrentMetricName_SLOTS_ACTIVE,
        CurrentMetricName_SLOTS_AVAILABLE
      ),
  )
where

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

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

pattern CurrentMetricName_AGENTS_AFTER_CONTACT_WORK :: CurrentMetricName
pattern $bCurrentMetricName_AGENTS_AFTER_CONTACT_WORK :: CurrentMetricName
$mCurrentMetricName_AGENTS_AFTER_CONTACT_WORK :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_AGENTS_AFTER_CONTACT_WORK = CurrentMetricName' "AGENTS_AFTER_CONTACT_WORK"

pattern CurrentMetricName_AGENTS_AVAILABLE :: CurrentMetricName
pattern $bCurrentMetricName_AGENTS_AVAILABLE :: CurrentMetricName
$mCurrentMetricName_AGENTS_AVAILABLE :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_AGENTS_AVAILABLE = CurrentMetricName' "AGENTS_AVAILABLE"

pattern CurrentMetricName_AGENTS_ERROR :: CurrentMetricName
pattern $bCurrentMetricName_AGENTS_ERROR :: CurrentMetricName
$mCurrentMetricName_AGENTS_ERROR :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_AGENTS_ERROR = CurrentMetricName' "AGENTS_ERROR"

pattern CurrentMetricName_AGENTS_NON_PRODUCTIVE :: CurrentMetricName
pattern $bCurrentMetricName_AGENTS_NON_PRODUCTIVE :: CurrentMetricName
$mCurrentMetricName_AGENTS_NON_PRODUCTIVE :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_AGENTS_NON_PRODUCTIVE = CurrentMetricName' "AGENTS_NON_PRODUCTIVE"

pattern CurrentMetricName_AGENTS_ONLINE :: CurrentMetricName
pattern $bCurrentMetricName_AGENTS_ONLINE :: CurrentMetricName
$mCurrentMetricName_AGENTS_ONLINE :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_AGENTS_ONLINE = CurrentMetricName' "AGENTS_ONLINE"

pattern CurrentMetricName_AGENTS_ON_CALL :: CurrentMetricName
pattern $bCurrentMetricName_AGENTS_ON_CALL :: CurrentMetricName
$mCurrentMetricName_AGENTS_ON_CALL :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_AGENTS_ON_CALL = CurrentMetricName' "AGENTS_ON_CALL"

pattern CurrentMetricName_AGENTS_ON_CONTACT :: CurrentMetricName
pattern $bCurrentMetricName_AGENTS_ON_CONTACT :: CurrentMetricName
$mCurrentMetricName_AGENTS_ON_CONTACT :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_AGENTS_ON_CONTACT = CurrentMetricName' "AGENTS_ON_CONTACT"

pattern CurrentMetricName_AGENTS_STAFFED :: CurrentMetricName
pattern $bCurrentMetricName_AGENTS_STAFFED :: CurrentMetricName
$mCurrentMetricName_AGENTS_STAFFED :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_AGENTS_STAFFED = CurrentMetricName' "AGENTS_STAFFED"

pattern CurrentMetricName_CONTACTS_IN_QUEUE :: CurrentMetricName
pattern $bCurrentMetricName_CONTACTS_IN_QUEUE :: CurrentMetricName
$mCurrentMetricName_CONTACTS_IN_QUEUE :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_CONTACTS_IN_QUEUE = CurrentMetricName' "CONTACTS_IN_QUEUE"

pattern CurrentMetricName_CONTACTS_SCHEDULED :: CurrentMetricName
pattern $bCurrentMetricName_CONTACTS_SCHEDULED :: CurrentMetricName
$mCurrentMetricName_CONTACTS_SCHEDULED :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_CONTACTS_SCHEDULED = CurrentMetricName' "CONTACTS_SCHEDULED"

pattern CurrentMetricName_OLDEST_CONTACT_AGE :: CurrentMetricName
pattern $bCurrentMetricName_OLDEST_CONTACT_AGE :: CurrentMetricName
$mCurrentMetricName_OLDEST_CONTACT_AGE :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_OLDEST_CONTACT_AGE = CurrentMetricName' "OLDEST_CONTACT_AGE"

pattern CurrentMetricName_SLOTS_ACTIVE :: CurrentMetricName
pattern $bCurrentMetricName_SLOTS_ACTIVE :: CurrentMetricName
$mCurrentMetricName_SLOTS_ACTIVE :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_SLOTS_ACTIVE = CurrentMetricName' "SLOTS_ACTIVE"

pattern CurrentMetricName_SLOTS_AVAILABLE :: CurrentMetricName
pattern $bCurrentMetricName_SLOTS_AVAILABLE :: CurrentMetricName
$mCurrentMetricName_SLOTS_AVAILABLE :: forall r. CurrentMetricName -> (Void# -> r) -> (Void# -> r) -> r
CurrentMetricName_SLOTS_AVAILABLE = CurrentMetricName' "SLOTS_AVAILABLE"

{-# COMPLETE
  CurrentMetricName_AGENTS_AFTER_CONTACT_WORK,
  CurrentMetricName_AGENTS_AVAILABLE,
  CurrentMetricName_AGENTS_ERROR,
  CurrentMetricName_AGENTS_NON_PRODUCTIVE,
  CurrentMetricName_AGENTS_ONLINE,
  CurrentMetricName_AGENTS_ON_CALL,
  CurrentMetricName_AGENTS_ON_CONTACT,
  CurrentMetricName_AGENTS_STAFFED,
  CurrentMetricName_CONTACTS_IN_QUEUE,
  CurrentMetricName_CONTACTS_SCHEDULED,
  CurrentMetricName_OLDEST_CONTACT_AGE,
  CurrentMetricName_SLOTS_ACTIVE,
  CurrentMetricName_SLOTS_AVAILABLE,
  CurrentMetricName'
  #-}