{-# 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.AlexaBusiness.Types.SkillTypeFilter
-- 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.AlexaBusiness.Types.SkillTypeFilter
  ( SkillTypeFilter
      ( ..,
        SkillTypeFilter_ALL,
        SkillTypeFilter_PRIVATE,
        SkillTypeFilter_PUBLIC
      ),
  )
where

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

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

pattern SkillTypeFilter_ALL :: SkillTypeFilter
pattern $bSkillTypeFilter_ALL :: SkillTypeFilter
$mSkillTypeFilter_ALL :: forall r. SkillTypeFilter -> (Void# -> r) -> (Void# -> r) -> r
SkillTypeFilter_ALL = SkillTypeFilter' "ALL"

pattern SkillTypeFilter_PRIVATE :: SkillTypeFilter
pattern $bSkillTypeFilter_PRIVATE :: SkillTypeFilter
$mSkillTypeFilter_PRIVATE :: forall r. SkillTypeFilter -> (Void# -> r) -> (Void# -> r) -> r
SkillTypeFilter_PRIVATE = SkillTypeFilter' "PRIVATE"

pattern SkillTypeFilter_PUBLIC :: SkillTypeFilter
pattern $bSkillTypeFilter_PUBLIC :: SkillTypeFilter
$mSkillTypeFilter_PUBLIC :: forall r. SkillTypeFilter -> (Void# -> r) -> (Void# -> r) -> r
SkillTypeFilter_PUBLIC = SkillTypeFilter' "PUBLIC"

{-# COMPLETE
  SkillTypeFilter_ALL,
  SkillTypeFilter_PRIVATE,
  SkillTypeFilter_PUBLIC,
  SkillTypeFilter'
  #-}