{-# 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.IoTSiteWise.Types.ListAssetsFilter
-- 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.IoTSiteWise.Types.ListAssetsFilter
  ( ListAssetsFilter
      ( ..,
        ListAssetsFilter_ALL,
        ListAssetsFilter_TOP_LEVEL
      ),
  )
where

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

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

pattern ListAssetsFilter_ALL :: ListAssetsFilter
pattern $bListAssetsFilter_ALL :: ListAssetsFilter
$mListAssetsFilter_ALL :: forall r. ListAssetsFilter -> (Void# -> r) -> (Void# -> r) -> r
ListAssetsFilter_ALL = ListAssetsFilter' "ALL"

pattern ListAssetsFilter_TOP_LEVEL :: ListAssetsFilter
pattern $bListAssetsFilter_TOP_LEVEL :: ListAssetsFilter
$mListAssetsFilter_TOP_LEVEL :: forall r. ListAssetsFilter -> (Void# -> r) -> (Void# -> r) -> r
ListAssetsFilter_TOP_LEVEL = ListAssetsFilter' "TOP_LEVEL"

{-# COMPLETE
  ListAssetsFilter_ALL,
  ListAssetsFilter_TOP_LEVEL,
  ListAssetsFilter'
  #-}