{-# 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.AppConfig.Types.ValidatorType
-- 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.AppConfig.Types.ValidatorType
  ( ValidatorType
      ( ..,
        ValidatorType_JSON_SCHEMA,
        ValidatorType_LAMBDA
      ),
  )
where

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

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

pattern ValidatorType_JSON_SCHEMA :: ValidatorType
pattern $bValidatorType_JSON_SCHEMA :: ValidatorType
$mValidatorType_JSON_SCHEMA :: forall r. ValidatorType -> (Void# -> r) -> (Void# -> r) -> r
ValidatorType_JSON_SCHEMA = ValidatorType' "JSON_SCHEMA"

pattern ValidatorType_LAMBDA :: ValidatorType
pattern $bValidatorType_LAMBDA :: ValidatorType
$mValidatorType_LAMBDA :: forall r. ValidatorType -> (Void# -> r) -> (Void# -> r) -> r
ValidatorType_LAMBDA = ValidatorType' "LAMBDA"

{-# COMPLETE
  ValidatorType_JSON_SCHEMA,
  ValidatorType_LAMBDA,
  ValidatorType'
  #-}