{-# 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.EFS.Types.TransitionToIARules
-- 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.EFS.Types.TransitionToIARules
  ( TransitionToIARules
      ( ..,
        TransitionToIARules_AFTER_14_DAYS,
        TransitionToIARules_AFTER_30_DAYS,
        TransitionToIARules_AFTER_60_DAYS,
        TransitionToIARules_AFTER_7_DAYS,
        TransitionToIARules_AFTER_90_DAYS
      ),
  )
where

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

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

pattern TransitionToIARules_AFTER_14_DAYS :: TransitionToIARules
pattern $bTransitionToIARules_AFTER_14_DAYS :: TransitionToIARules
$mTransitionToIARules_AFTER_14_DAYS :: forall r. TransitionToIARules -> (Void# -> r) -> (Void# -> r) -> r
TransitionToIARules_AFTER_14_DAYS = TransitionToIARules' "AFTER_14_DAYS"

pattern TransitionToIARules_AFTER_30_DAYS :: TransitionToIARules
pattern $bTransitionToIARules_AFTER_30_DAYS :: TransitionToIARules
$mTransitionToIARules_AFTER_30_DAYS :: forall r. TransitionToIARules -> (Void# -> r) -> (Void# -> r) -> r
TransitionToIARules_AFTER_30_DAYS = TransitionToIARules' "AFTER_30_DAYS"

pattern TransitionToIARules_AFTER_60_DAYS :: TransitionToIARules
pattern $bTransitionToIARules_AFTER_60_DAYS :: TransitionToIARules
$mTransitionToIARules_AFTER_60_DAYS :: forall r. TransitionToIARules -> (Void# -> r) -> (Void# -> r) -> r
TransitionToIARules_AFTER_60_DAYS = TransitionToIARules' "AFTER_60_DAYS"

pattern TransitionToIARules_AFTER_7_DAYS :: TransitionToIARules
pattern $bTransitionToIARules_AFTER_7_DAYS :: TransitionToIARules
$mTransitionToIARules_AFTER_7_DAYS :: forall r. TransitionToIARules -> (Void# -> r) -> (Void# -> r) -> r
TransitionToIARules_AFTER_7_DAYS = TransitionToIARules' "AFTER_7_DAYS"

pattern TransitionToIARules_AFTER_90_DAYS :: TransitionToIARules
pattern $bTransitionToIARules_AFTER_90_DAYS :: TransitionToIARules
$mTransitionToIARules_AFTER_90_DAYS :: forall r. TransitionToIARules -> (Void# -> r) -> (Void# -> r) -> r
TransitionToIARules_AFTER_90_DAYS = TransitionToIARules' "AFTER_90_DAYS"

{-# COMPLETE
  TransitionToIARules_AFTER_14_DAYS,
  TransitionToIARules_AFTER_30_DAYS,
  TransitionToIARules_AFTER_60_DAYS,
  TransitionToIARules_AFTER_7_DAYS,
  TransitionToIARules_AFTER_90_DAYS,
  TransitionToIARules'
  #-}