{-# 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.MigrationHubStrategy.Types.ServerCriteria
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.MigrationHubStrategy.Types.ServerCriteria
  ( ServerCriteria
      ( ..,
        ServerCriteria_ANALYSIS_STATUS,
        ServerCriteria_DESTINATION,
        ServerCriteria_ERROR_CATEGORY,
        ServerCriteria_NOT_DEFINED,
        ServerCriteria_OS_NAME,
        ServerCriteria_SERVER_ID,
        ServerCriteria_STRATEGY
      ),
  )
where

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

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

pattern ServerCriteria_ANALYSIS_STATUS :: ServerCriteria
pattern $bServerCriteria_ANALYSIS_STATUS :: ServerCriteria
$mServerCriteria_ANALYSIS_STATUS :: forall {r}. ServerCriteria -> ((# #) -> r) -> ((# #) -> r) -> r
ServerCriteria_ANALYSIS_STATUS = ServerCriteria' "ANALYSIS_STATUS"

pattern ServerCriteria_DESTINATION :: ServerCriteria
pattern $bServerCriteria_DESTINATION :: ServerCriteria
$mServerCriteria_DESTINATION :: forall {r}. ServerCriteria -> ((# #) -> r) -> ((# #) -> r) -> r
ServerCriteria_DESTINATION = ServerCriteria' "DESTINATION"

pattern ServerCriteria_ERROR_CATEGORY :: ServerCriteria
pattern $bServerCriteria_ERROR_CATEGORY :: ServerCriteria
$mServerCriteria_ERROR_CATEGORY :: forall {r}. ServerCriteria -> ((# #) -> r) -> ((# #) -> r) -> r
ServerCriteria_ERROR_CATEGORY = ServerCriteria' "ERROR_CATEGORY"

pattern ServerCriteria_NOT_DEFINED :: ServerCriteria
pattern $bServerCriteria_NOT_DEFINED :: ServerCriteria
$mServerCriteria_NOT_DEFINED :: forall {r}. ServerCriteria -> ((# #) -> r) -> ((# #) -> r) -> r
ServerCriteria_NOT_DEFINED = ServerCriteria' "NOT_DEFINED"

pattern ServerCriteria_OS_NAME :: ServerCriteria
pattern $bServerCriteria_OS_NAME :: ServerCriteria
$mServerCriteria_OS_NAME :: forall {r}. ServerCriteria -> ((# #) -> r) -> ((# #) -> r) -> r
ServerCriteria_OS_NAME = ServerCriteria' "OS_NAME"

pattern ServerCriteria_SERVER_ID :: ServerCriteria
pattern $bServerCriteria_SERVER_ID :: ServerCriteria
$mServerCriteria_SERVER_ID :: forall {r}. ServerCriteria -> ((# #) -> r) -> ((# #) -> r) -> r
ServerCriteria_SERVER_ID = ServerCriteria' "SERVER_ID"

pattern ServerCriteria_STRATEGY :: ServerCriteria
pattern $bServerCriteria_STRATEGY :: ServerCriteria
$mServerCriteria_STRATEGY :: forall {r}. ServerCriteria -> ((# #) -> r) -> ((# #) -> r) -> r
ServerCriteria_STRATEGY = ServerCriteria' "STRATEGY"

{-# COMPLETE
  ServerCriteria_ANALYSIS_STATUS,
  ServerCriteria_DESTINATION,
  ServerCriteria_ERROR_CATEGORY,
  ServerCriteria_NOT_DEFINED,
  ServerCriteria_OS_NAME,
  ServerCriteria_SERVER_ID,
  ServerCriteria_STRATEGY,
  ServerCriteria'
  #-}