{-# 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.IoTThingsGraph.Types.EntityFilterName
-- 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.IoTThingsGraph.Types.EntityFilterName
  ( EntityFilterName
      ( ..,
        EntityFilterName_NAME,
        EntityFilterName_NAMESPACE,
        EntityFilterName_REFERENCED_ENTITY_ID,
        EntityFilterName_SEMANTIC_TYPE_PATH
      ),
  )
where

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

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

pattern EntityFilterName_NAME :: EntityFilterName
pattern $bEntityFilterName_NAME :: EntityFilterName
$mEntityFilterName_NAME :: forall r. EntityFilterName -> (Void# -> r) -> (Void# -> r) -> r
EntityFilterName_NAME = EntityFilterName' "NAME"

pattern EntityFilterName_NAMESPACE :: EntityFilterName
pattern $bEntityFilterName_NAMESPACE :: EntityFilterName
$mEntityFilterName_NAMESPACE :: forall r. EntityFilterName -> (Void# -> r) -> (Void# -> r) -> r
EntityFilterName_NAMESPACE = EntityFilterName' "NAMESPACE"

pattern EntityFilterName_REFERENCED_ENTITY_ID :: EntityFilterName
pattern $bEntityFilterName_REFERENCED_ENTITY_ID :: EntityFilterName
$mEntityFilterName_REFERENCED_ENTITY_ID :: forall r. EntityFilterName -> (Void# -> r) -> (Void# -> r) -> r
EntityFilterName_REFERENCED_ENTITY_ID = EntityFilterName' "REFERENCED_ENTITY_ID"

pattern EntityFilterName_SEMANTIC_TYPE_PATH :: EntityFilterName
pattern $bEntityFilterName_SEMANTIC_TYPE_PATH :: EntityFilterName
$mEntityFilterName_SEMANTIC_TYPE_PATH :: forall r. EntityFilterName -> (Void# -> r) -> (Void# -> r) -> r
EntityFilterName_SEMANTIC_TYPE_PATH = EntityFilterName' "SEMANTIC_TYPE_PATH"

{-# COMPLETE
  EntityFilterName_NAME,
  EntityFilterName_NAMESPACE,
  EntityFilterName_REFERENCED_ENTITY_ID,
  EntityFilterName_SEMANTIC_TYPE_PATH,
  EntityFilterName'
  #-}