{-# 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.ComputeOptimizer.Types.EBSFilterName
-- 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.ComputeOptimizer.Types.EBSFilterName
  ( EBSFilterName
      ( ..,
        EBSFilterName_Finding
      ),
  )
where

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

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

pattern EBSFilterName_Finding :: EBSFilterName
pattern $bEBSFilterName_Finding :: EBSFilterName
$mEBSFilterName_Finding :: forall r. EBSFilterName -> (Void# -> r) -> (Void# -> r) -> r
EBSFilterName_Finding = EBSFilterName' "Finding"

{-# COMPLETE
  EBSFilterName_Finding,
  EBSFilterName'
  #-}