{-# 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.LexModels.Types.Destination
-- 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.LexModels.Types.Destination
  ( Destination
      ( ..,
        Destination_CLOUDWATCH_LOGS,
        Destination_S3
      ),
  )
where

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

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

pattern Destination_CLOUDWATCH_LOGS :: Destination
pattern $bDestination_CLOUDWATCH_LOGS :: Destination
$mDestination_CLOUDWATCH_LOGS :: forall r. Destination -> (Void# -> r) -> (Void# -> r) -> r
Destination_CLOUDWATCH_LOGS = Destination' "CLOUDWATCH_LOGS"

pattern Destination_S3 :: Destination
pattern $bDestination_S3 :: Destination
$mDestination_S3 :: forall r. Destination -> (Void# -> r) -> (Void# -> r) -> r
Destination_S3 = Destination' "S3"

{-# COMPLETE
  Destination_CLOUDWATCH_LOGS,
  Destination_S3,
  Destination'
  #-}