{-# 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.SecurityHub.Types.StringFilterComparison
-- 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.SecurityHub.Types.StringFilterComparison
  ( StringFilterComparison
      ( ..,
        StringFilterComparison_EQUALS,
        StringFilterComparison_NOT_EQUALS,
        StringFilterComparison_PREFIX,
        StringFilterComparison_PREFIX_NOT_EQUALS
      ),
  )
where

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

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

pattern StringFilterComparison_EQUALS :: StringFilterComparison
pattern $bStringFilterComparison_EQUALS :: StringFilterComparison
$mStringFilterComparison_EQUALS :: forall r.
StringFilterComparison -> (Void# -> r) -> (Void# -> r) -> r
StringFilterComparison_EQUALS = StringFilterComparison' "EQUALS"

pattern StringFilterComparison_NOT_EQUALS :: StringFilterComparison
pattern $bStringFilterComparison_NOT_EQUALS :: StringFilterComparison
$mStringFilterComparison_NOT_EQUALS :: forall r.
StringFilterComparison -> (Void# -> r) -> (Void# -> r) -> r
StringFilterComparison_NOT_EQUALS = StringFilterComparison' "NOT_EQUALS"

pattern StringFilterComparison_PREFIX :: StringFilterComparison
pattern $bStringFilterComparison_PREFIX :: StringFilterComparison
$mStringFilterComparison_PREFIX :: forall r.
StringFilterComparison -> (Void# -> r) -> (Void# -> r) -> r
StringFilterComparison_PREFIX = StringFilterComparison' "PREFIX"

pattern StringFilterComparison_PREFIX_NOT_EQUALS :: StringFilterComparison
pattern $bStringFilterComparison_PREFIX_NOT_EQUALS :: StringFilterComparison
$mStringFilterComparison_PREFIX_NOT_EQUALS :: forall r.
StringFilterComparison -> (Void# -> r) -> (Void# -> r) -> r
StringFilterComparison_PREFIX_NOT_EQUALS = StringFilterComparison' "PREFIX_NOT_EQUALS"

{-# COMPLETE
  StringFilterComparison_EQUALS,
  StringFilterComparison_NOT_EQUALS,
  StringFilterComparison_PREFIX,
  StringFilterComparison_PREFIX_NOT_EQUALS,
  StringFilterComparison'
  #-}