{-# 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.Discovery.Types.ConfigurationItemType
-- 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.Discovery.Types.ConfigurationItemType
  ( ConfigurationItemType
      ( ..,
        ConfigurationItemType_APPLICATION,
        ConfigurationItemType_CONNECTION,
        ConfigurationItemType_PROCESS,
        ConfigurationItemType_SERVER
      ),
  )
where

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

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

pattern ConfigurationItemType_APPLICATION :: ConfigurationItemType
pattern $bConfigurationItemType_APPLICATION :: ConfigurationItemType
$mConfigurationItemType_APPLICATION :: forall {r}.
ConfigurationItemType -> ((# #) -> r) -> ((# #) -> r) -> r
ConfigurationItemType_APPLICATION = ConfigurationItemType' "APPLICATION"

pattern ConfigurationItemType_CONNECTION :: ConfigurationItemType
pattern $bConfigurationItemType_CONNECTION :: ConfigurationItemType
$mConfigurationItemType_CONNECTION :: forall {r}.
ConfigurationItemType -> ((# #) -> r) -> ((# #) -> r) -> r
ConfigurationItemType_CONNECTION = ConfigurationItemType' "CONNECTION"

pattern ConfigurationItemType_PROCESS :: ConfigurationItemType
pattern $bConfigurationItemType_PROCESS :: ConfigurationItemType
$mConfigurationItemType_PROCESS :: forall {r}.
ConfigurationItemType -> ((# #) -> r) -> ((# #) -> r) -> r
ConfigurationItemType_PROCESS = ConfigurationItemType' "PROCESS"

pattern ConfigurationItemType_SERVER :: ConfigurationItemType
pattern $bConfigurationItemType_SERVER :: ConfigurationItemType
$mConfigurationItemType_SERVER :: forall {r}.
ConfigurationItemType -> ((# #) -> r) -> ((# #) -> r) -> r
ConfigurationItemType_SERVER = ConfigurationItemType' "SERVER"

{-# COMPLETE
  ConfigurationItemType_APPLICATION,
  ConfigurationItemType_CONNECTION,
  ConfigurationItemType_PROCESS,
  ConfigurationItemType_SERVER,
  ConfigurationItemType'
  #-}