{-# 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.Lightsail.Types.HeaderEnum
-- 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.Lightsail.Types.HeaderEnum
  ( HeaderEnum
      ( ..,
        HeaderEnum_Accept,
        HeaderEnum_Accept_Charset,
        HeaderEnum_Accept_Datetime,
        HeaderEnum_Accept_Encoding,
        HeaderEnum_Accept_Language,
        HeaderEnum_Authorization,
        HeaderEnum_CloudFront_Forwarded_Proto,
        HeaderEnum_CloudFront_Is_Desktop_Viewer,
        HeaderEnum_CloudFront_Is_Mobile_Viewer,
        HeaderEnum_CloudFront_Is_SmartTV_Viewer,
        HeaderEnum_CloudFront_Is_Tablet_Viewer,
        HeaderEnum_CloudFront_Viewer_Country,
        HeaderEnum_Host,
        HeaderEnum_Origin,
        HeaderEnum_Referer
      ),
  )
where

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

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

pattern HeaderEnum_Accept :: HeaderEnum
pattern $bHeaderEnum_Accept :: HeaderEnum
$mHeaderEnum_Accept :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_Accept = HeaderEnum' "Accept"

pattern HeaderEnum_Accept_Charset :: HeaderEnum
pattern $bHeaderEnum_Accept_Charset :: HeaderEnum
$mHeaderEnum_Accept_Charset :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_Accept_Charset = HeaderEnum' "Accept-Charset"

pattern HeaderEnum_Accept_Datetime :: HeaderEnum
pattern $bHeaderEnum_Accept_Datetime :: HeaderEnum
$mHeaderEnum_Accept_Datetime :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_Accept_Datetime = HeaderEnum' "Accept-Datetime"

pattern HeaderEnum_Accept_Encoding :: HeaderEnum
pattern $bHeaderEnum_Accept_Encoding :: HeaderEnum
$mHeaderEnum_Accept_Encoding :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_Accept_Encoding = HeaderEnum' "Accept-Encoding"

pattern HeaderEnum_Accept_Language :: HeaderEnum
pattern $bHeaderEnum_Accept_Language :: HeaderEnum
$mHeaderEnum_Accept_Language :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_Accept_Language = HeaderEnum' "Accept-Language"

pattern HeaderEnum_Authorization :: HeaderEnum
pattern $bHeaderEnum_Authorization :: HeaderEnum
$mHeaderEnum_Authorization :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_Authorization = HeaderEnum' "Authorization"

pattern HeaderEnum_CloudFront_Forwarded_Proto :: HeaderEnum
pattern $bHeaderEnum_CloudFront_Forwarded_Proto :: HeaderEnum
$mHeaderEnum_CloudFront_Forwarded_Proto :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_CloudFront_Forwarded_Proto = HeaderEnum' "CloudFront-Forwarded-Proto"

pattern HeaderEnum_CloudFront_Is_Desktop_Viewer :: HeaderEnum
pattern $bHeaderEnum_CloudFront_Is_Desktop_Viewer :: HeaderEnum
$mHeaderEnum_CloudFront_Is_Desktop_Viewer :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_CloudFront_Is_Desktop_Viewer = HeaderEnum' "CloudFront-Is-Desktop-Viewer"

pattern HeaderEnum_CloudFront_Is_Mobile_Viewer :: HeaderEnum
pattern $bHeaderEnum_CloudFront_Is_Mobile_Viewer :: HeaderEnum
$mHeaderEnum_CloudFront_Is_Mobile_Viewer :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_CloudFront_Is_Mobile_Viewer = HeaderEnum' "CloudFront-Is-Mobile-Viewer"

pattern HeaderEnum_CloudFront_Is_SmartTV_Viewer :: HeaderEnum
pattern $bHeaderEnum_CloudFront_Is_SmartTV_Viewer :: HeaderEnum
$mHeaderEnum_CloudFront_Is_SmartTV_Viewer :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_CloudFront_Is_SmartTV_Viewer = HeaderEnum' "CloudFront-Is-SmartTV-Viewer"

pattern HeaderEnum_CloudFront_Is_Tablet_Viewer :: HeaderEnum
pattern $bHeaderEnum_CloudFront_Is_Tablet_Viewer :: HeaderEnum
$mHeaderEnum_CloudFront_Is_Tablet_Viewer :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_CloudFront_Is_Tablet_Viewer = HeaderEnum' "CloudFront-Is-Tablet-Viewer"

pattern HeaderEnum_CloudFront_Viewer_Country :: HeaderEnum
pattern $bHeaderEnum_CloudFront_Viewer_Country :: HeaderEnum
$mHeaderEnum_CloudFront_Viewer_Country :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_CloudFront_Viewer_Country = HeaderEnum' "CloudFront-Viewer-Country"

pattern HeaderEnum_Host :: HeaderEnum
pattern $bHeaderEnum_Host :: HeaderEnum
$mHeaderEnum_Host :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_Host = HeaderEnum' "Host"

pattern HeaderEnum_Origin :: HeaderEnum
pattern $bHeaderEnum_Origin :: HeaderEnum
$mHeaderEnum_Origin :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_Origin = HeaderEnum' "Origin"

pattern HeaderEnum_Referer :: HeaderEnum
pattern $bHeaderEnum_Referer :: HeaderEnum
$mHeaderEnum_Referer :: forall r. HeaderEnum -> (Void# -> r) -> (Void# -> r) -> r
HeaderEnum_Referer = HeaderEnum' "Referer"

{-# COMPLETE
  HeaderEnum_Accept,
  HeaderEnum_Accept_Charset,
  HeaderEnum_Accept_Datetime,
  HeaderEnum_Accept_Encoding,
  HeaderEnum_Accept_Language,
  HeaderEnum_Authorization,
  HeaderEnum_CloudFront_Forwarded_Proto,
  HeaderEnum_CloudFront_Is_Desktop_Viewer,
  HeaderEnum_CloudFront_Is_Mobile_Viewer,
  HeaderEnum_CloudFront_Is_SmartTV_Viewer,
  HeaderEnum_CloudFront_Is_Tablet_Viewer,
  HeaderEnum_CloudFront_Viewer_Country,
  HeaderEnum_Host,
  HeaderEnum_Origin,
  HeaderEnum_Referer,
  HeaderEnum'
  #-}