{-# 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.ECS.Types.LogDriver
-- 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.ECS.Types.LogDriver
  ( LogDriver
      ( ..,
        LogDriver_Awsfirelens,
        LogDriver_Awslogs,
        LogDriver_Fluentd,
        LogDriver_Gelf,
        LogDriver_Journald,
        LogDriver_Json_file,
        LogDriver_Splunk,
        LogDriver_Syslog
      ),
  )
where

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

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

pattern LogDriver_Awsfirelens :: LogDriver
pattern $bLogDriver_Awsfirelens :: LogDriver
$mLogDriver_Awsfirelens :: forall r. LogDriver -> (Void# -> r) -> (Void# -> r) -> r
LogDriver_Awsfirelens = LogDriver' "awsfirelens"

pattern LogDriver_Awslogs :: LogDriver
pattern $bLogDriver_Awslogs :: LogDriver
$mLogDriver_Awslogs :: forall r. LogDriver -> (Void# -> r) -> (Void# -> r) -> r
LogDriver_Awslogs = LogDriver' "awslogs"

pattern LogDriver_Fluentd :: LogDriver
pattern $bLogDriver_Fluentd :: LogDriver
$mLogDriver_Fluentd :: forall r. LogDriver -> (Void# -> r) -> (Void# -> r) -> r
LogDriver_Fluentd = LogDriver' "fluentd"

pattern LogDriver_Gelf :: LogDriver
pattern $bLogDriver_Gelf :: LogDriver
$mLogDriver_Gelf :: forall r. LogDriver -> (Void# -> r) -> (Void# -> r) -> r
LogDriver_Gelf = LogDriver' "gelf"

pattern LogDriver_Journald :: LogDriver
pattern $bLogDriver_Journald :: LogDriver
$mLogDriver_Journald :: forall r. LogDriver -> (Void# -> r) -> (Void# -> r) -> r
LogDriver_Journald = LogDriver' "journald"

pattern LogDriver_Json_file :: LogDriver
pattern $bLogDriver_Json_file :: LogDriver
$mLogDriver_Json_file :: forall r. LogDriver -> (Void# -> r) -> (Void# -> r) -> r
LogDriver_Json_file = LogDriver' "json-file"

pattern LogDriver_Splunk :: LogDriver
pattern $bLogDriver_Splunk :: LogDriver
$mLogDriver_Splunk :: forall r. LogDriver -> (Void# -> r) -> (Void# -> r) -> r
LogDriver_Splunk = LogDriver' "splunk"

pattern LogDriver_Syslog :: LogDriver
pattern $bLogDriver_Syslog :: LogDriver
$mLogDriver_Syslog :: forall r. LogDriver -> (Void# -> r) -> (Void# -> r) -> r
LogDriver_Syslog = LogDriver' "syslog"

{-# COMPLETE
  LogDriver_Awsfirelens,
  LogDriver_Awslogs,
  LogDriver_Fluentd,
  LogDriver_Gelf,
  LogDriver_Journald,
  LogDriver_Json_file,
  LogDriver_Splunk,
  LogDriver_Syslog,
  LogDriver'
  #-}