{-# 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.IAM.Types.ReportFormatType
-- 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.IAM.Types.ReportFormatType
  ( ReportFormatType
      ( ..,
        ReportFormatType_Text_csv
      ),
  )
where

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

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

pattern ReportFormatType_Text_csv :: ReportFormatType
pattern $bReportFormatType_Text_csv :: ReportFormatType
$mReportFormatType_Text_csv :: forall r. ReportFormatType -> (Void# -> r) -> (Void# -> r) -> r
ReportFormatType_Text_csv = ReportFormatType' "text/csv"

{-# COMPLETE
  ReportFormatType_Text_csv,
  ReportFormatType'
  #-}