{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype HeaderEnum = HeaderEnum'
  { HeaderEnum -> Text
fromHeaderEnum ::
      Data.Text
  }
  deriving stock
    ( Int -> HeaderEnum -> ShowS
[HeaderEnum] -> ShowS
HeaderEnum -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq HeaderEnum
Int -> HeaderEnum -> Int
HeaderEnum -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: HeaderEnum -> ()
$crnf :: HeaderEnum -> ()
Prelude.NFData,
      Text -> Either String HeaderEnum
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String HeaderEnum
$cfromText :: Text -> Either String HeaderEnum
Data.FromText,
      HeaderEnum -> Text
forall a. (a -> Text) -> ToText a
toText :: HeaderEnum -> Text
$ctoText :: HeaderEnum -> Text
Data.ToText,
      HeaderEnum -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: HeaderEnum -> ByteString
$ctoBS :: HeaderEnum -> ByteString
Data.ToByteString,
      HeaderEnum -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: HeaderEnum -> ByteStringBuilder
$cbuild :: HeaderEnum -> ByteStringBuilder
Data.ToLog,
      HeaderName -> HeaderEnum -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> HeaderEnum -> [Header]
$ctoHeader :: HeaderName -> HeaderEnum -> [Header]
Data.ToHeader,
      HeaderEnum -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: HeaderEnum -> QueryString
$ctoQuery :: HeaderEnum -> QueryString
Data.ToQuery,
      Value -> Parser [HeaderEnum]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [HeaderEnum]
FromJSONKeyFunction HeaderEnum
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [HeaderEnum]
$cfromJSONKeyList :: FromJSONKeyFunction [HeaderEnum]
fromJSONKey :: FromJSONKeyFunction HeaderEnum
$cfromJSONKey :: FromJSONKeyFunction HeaderEnum
Data.FromJSONKey,
      [HeaderEnum] -> Encoding
[HeaderEnum] -> Value
HeaderEnum -> Encoding
HeaderEnum -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [HeaderEnum]
ToJSONKeyFunction HeaderEnum
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [HeaderEnum]
$ctoJSONKeyList :: ToJSONKeyFunction [HeaderEnum]
toJSONKey :: ToJSONKeyFunction HeaderEnum
$ctoJSONKey :: ToJSONKeyFunction HeaderEnum
Data.ToJSONKey,
      [Node] -> Either String HeaderEnum
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String HeaderEnum
$cparseXML :: [Node] -> Either String HeaderEnum
Data.FromXML,
      HeaderEnum -> XML
forall a. (a -> XML) -> ToXML a
toXML :: HeaderEnum -> XML
$ctoXML :: HeaderEnum -> XML
Data.ToXML
    )

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

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

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

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

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

pattern HeaderEnum_Authorization :: HeaderEnum
pattern $bHeaderEnum_Authorization :: HeaderEnum
$mHeaderEnum_Authorization :: forall {r}. HeaderEnum -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> r) -> r
HeaderEnum_CloudFront_Viewer_Country = HeaderEnum' "CloudFront-Viewer-Country"

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

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

pattern HeaderEnum_Referer :: HeaderEnum
pattern $bHeaderEnum_Referer :: HeaderEnum
$mHeaderEnum_Referer :: forall {r}. HeaderEnum -> ((# #) -> r) -> ((# #) -> 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'
  #-}