{-# 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.FSx.Types.SnapshotFilterName
-- 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.FSx.Types.SnapshotFilterName
  ( SnapshotFilterName
      ( ..,
        SnapshotFilterName_File_system_id,
        SnapshotFilterName_Volume_id
      ),
  )
where

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

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

pattern SnapshotFilterName_File_system_id :: SnapshotFilterName
pattern $bSnapshotFilterName_File_system_id :: SnapshotFilterName
$mSnapshotFilterName_File_system_id :: forall {r}. SnapshotFilterName -> ((# #) -> r) -> ((# #) -> r) -> r
SnapshotFilterName_File_system_id = SnapshotFilterName' "file-system-id"

pattern SnapshotFilterName_Volume_id :: SnapshotFilterName
pattern $bSnapshotFilterName_Volume_id :: SnapshotFilterName
$mSnapshotFilterName_Volume_id :: forall {r}. SnapshotFilterName -> ((# #) -> r) -> ((# #) -> r) -> r
SnapshotFilterName_Volume_id = SnapshotFilterName' "volume-id"

{-# COMPLETE
  SnapshotFilterName_File_system_id,
  SnapshotFilterName_Volume_id,
  SnapshotFilterName'
  #-}