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

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

newtype ConfigurationItemType = ConfigurationItemType'
  { ConfigurationItemType -> Text
fromConfigurationItemType ::
      Core.Text
  }
  deriving stock
    ( Int -> ConfigurationItemType -> ShowS
[ConfigurationItemType] -> ShowS
ConfigurationItemType -> String
(Int -> ConfigurationItemType -> ShowS)
-> (ConfigurationItemType -> String)
-> ([ConfigurationItemType] -> ShowS)
-> Show ConfigurationItemType
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]
(Int -> ReadS ConfigurationItemType)
-> ReadS [ConfigurationItemType]
-> ReadPrec ConfigurationItemType
-> ReadPrec [ConfigurationItemType]
-> Read 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
(ConfigurationItemType -> ConfigurationItemType -> Bool)
-> (ConfigurationItemType -> ConfigurationItemType -> Bool)
-> Eq ConfigurationItemType
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
Eq ConfigurationItemType
-> (ConfigurationItemType -> ConfigurationItemType -> Ordering)
-> (ConfigurationItemType -> ConfigurationItemType -> Bool)
-> (ConfigurationItemType -> ConfigurationItemType -> Bool)
-> (ConfigurationItemType -> ConfigurationItemType -> Bool)
-> (ConfigurationItemType -> ConfigurationItemType -> Bool)
-> (ConfigurationItemType
    -> ConfigurationItemType -> ConfigurationItemType)
-> (ConfigurationItemType
    -> ConfigurationItemType -> ConfigurationItemType)
-> Ord 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
$cp1Ord :: Eq ConfigurationItemType
Prelude.Ord,
      (forall x. ConfigurationItemType -> Rep ConfigurationItemType x)
-> (forall x. Rep ConfigurationItemType x -> ConfigurationItemType)
-> Generic ConfigurationItemType
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
    ( Int -> ConfigurationItemType -> Int
ConfigurationItemType -> Int
(Int -> ConfigurationItemType -> Int)
-> (ConfigurationItemType -> Int) -> Hashable ConfigurationItemType
forall 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 -> ()
(ConfigurationItemType -> ()) -> NFData ConfigurationItemType
forall a. (a -> ()) -> NFData a
rnf :: ConfigurationItemType -> ()
$crnf :: ConfigurationItemType -> ()
Prelude.NFData,
      Text -> Either String ConfigurationItemType
(Text -> Either String ConfigurationItemType)
-> FromText ConfigurationItemType
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String ConfigurationItemType
$cfromText :: Text -> Either String ConfigurationItemType
Core.FromText,
      ConfigurationItemType -> Text
(ConfigurationItemType -> Text) -> ToText ConfigurationItemType
forall a. (a -> Text) -> ToText a
toText :: ConfigurationItemType -> Text
$ctoText :: ConfigurationItemType -> Text
Core.ToText,
      ConfigurationItemType -> ByteString
(ConfigurationItemType -> ByteString)
-> ToByteString ConfigurationItemType
forall a. (a -> ByteString) -> ToByteString a
toBS :: ConfigurationItemType -> ByteString
$ctoBS :: ConfigurationItemType -> ByteString
Core.ToByteString,
      ConfigurationItemType -> ByteStringBuilder
(ConfigurationItemType -> ByteStringBuilder)
-> ToLog ConfigurationItemType
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: ConfigurationItemType -> ByteStringBuilder
$cbuild :: ConfigurationItemType -> ByteStringBuilder
Core.ToLog,
      HeaderName -> ConfigurationItemType -> [Header]
(HeaderName -> ConfigurationItemType -> [Header])
-> ToHeader ConfigurationItemType
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> ConfigurationItemType -> [Header]
$ctoHeader :: HeaderName -> ConfigurationItemType -> [Header]
Core.ToHeader,
      ConfigurationItemType -> QueryString
(ConfigurationItemType -> QueryString)
-> ToQuery ConfigurationItemType
forall a. (a -> QueryString) -> ToQuery a
toQuery :: ConfigurationItemType -> QueryString
$ctoQuery :: ConfigurationItemType -> QueryString
Core.ToQuery,
      Value -> Parser [ConfigurationItemType]
Value -> Parser ConfigurationItemType
(Value -> Parser ConfigurationItemType)
-> (Value -> Parser [ConfigurationItemType])
-> FromJSON 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
Core.FromJSON,
      FromJSONKeyFunction [ConfigurationItemType]
FromJSONKeyFunction ConfigurationItemType
FromJSONKeyFunction ConfigurationItemType
-> FromJSONKeyFunction [ConfigurationItemType]
-> FromJSONKey ConfigurationItemType
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [ConfigurationItemType]
$cfromJSONKeyList :: FromJSONKeyFunction [ConfigurationItemType]
fromJSONKey :: FromJSONKeyFunction ConfigurationItemType
$cfromJSONKey :: FromJSONKeyFunction ConfigurationItemType
Core.FromJSONKey,
      [ConfigurationItemType] -> Encoding
[ConfigurationItemType] -> Value
ConfigurationItemType -> Encoding
ConfigurationItemType -> Value
(ConfigurationItemType -> Value)
-> (ConfigurationItemType -> Encoding)
-> ([ConfigurationItemType] -> Value)
-> ([ConfigurationItemType] -> Encoding)
-> ToJSON ConfigurationItemType
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
Core.ToJSON,
      ToJSONKeyFunction [ConfigurationItemType]
ToJSONKeyFunction ConfigurationItemType
ToJSONKeyFunction ConfigurationItemType
-> ToJSONKeyFunction [ConfigurationItemType]
-> ToJSONKey ConfigurationItemType
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [ConfigurationItemType]
$ctoJSONKeyList :: ToJSONKeyFunction [ConfigurationItemType]
toJSONKey :: ToJSONKeyFunction ConfigurationItemType
$ctoJSONKey :: ToJSONKeyFunction ConfigurationItemType
Core.ToJSONKey,
      [Node] -> Either String ConfigurationItemType
([Node] -> Either String ConfigurationItemType)
-> FromXML ConfigurationItemType
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String ConfigurationItemType
$cparseXML :: [Node] -> Either String ConfigurationItemType
Core.FromXML,
      ConfigurationItemType -> XML
(ConfigurationItemType -> XML) -> ToXML ConfigurationItemType
forall a. (a -> XML) -> ToXML a
toXML :: ConfigurationItemType -> XML
$ctoXML :: ConfigurationItemType -> XML
Core.ToXML
    )

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

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

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

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

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