{-# 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.CloudFront.Types.ResponseHeadersPolicyAccessControlAllowMethodsValues
-- 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.CloudFront.Types.ResponseHeadersPolicyAccessControlAllowMethodsValues
  ( ResponseHeadersPolicyAccessControlAllowMethodsValues
      ( ..,
        ResponseHeadersPolicyAccessControlAllowMethodsValues_ALL,
        ResponseHeadersPolicyAccessControlAllowMethodsValues_DELETE,
        ResponseHeadersPolicyAccessControlAllowMethodsValues_GET,
        ResponseHeadersPolicyAccessControlAllowMethodsValues_HEAD,
        ResponseHeadersPolicyAccessControlAllowMethodsValues_OPTIONS,
        ResponseHeadersPolicyAccessControlAllowMethodsValues_PATCH,
        ResponseHeadersPolicyAccessControlAllowMethodsValues_POST,
        ResponseHeadersPolicyAccessControlAllowMethodsValues_PUT
      ),
  )
where

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

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

pattern ResponseHeadersPolicyAccessControlAllowMethodsValues_ALL :: ResponseHeadersPolicyAccessControlAllowMethodsValues
pattern $bResponseHeadersPolicyAccessControlAllowMethodsValues_ALL :: ResponseHeadersPolicyAccessControlAllowMethodsValues
$mResponseHeadersPolicyAccessControlAllowMethodsValues_ALL :: forall {r}.
ResponseHeadersPolicyAccessControlAllowMethodsValues
-> ((# #) -> r) -> ((# #) -> r) -> r
ResponseHeadersPolicyAccessControlAllowMethodsValues_ALL = ResponseHeadersPolicyAccessControlAllowMethodsValues' "ALL"

pattern ResponseHeadersPolicyAccessControlAllowMethodsValues_DELETE :: ResponseHeadersPolicyAccessControlAllowMethodsValues
pattern $bResponseHeadersPolicyAccessControlAllowMethodsValues_DELETE :: ResponseHeadersPolicyAccessControlAllowMethodsValues
$mResponseHeadersPolicyAccessControlAllowMethodsValues_DELETE :: forall {r}.
ResponseHeadersPolicyAccessControlAllowMethodsValues
-> ((# #) -> r) -> ((# #) -> r) -> r
ResponseHeadersPolicyAccessControlAllowMethodsValues_DELETE = ResponseHeadersPolicyAccessControlAllowMethodsValues' "DELETE"

pattern ResponseHeadersPolicyAccessControlAllowMethodsValues_GET :: ResponseHeadersPolicyAccessControlAllowMethodsValues
pattern $bResponseHeadersPolicyAccessControlAllowMethodsValues_GET :: ResponseHeadersPolicyAccessControlAllowMethodsValues
$mResponseHeadersPolicyAccessControlAllowMethodsValues_GET :: forall {r}.
ResponseHeadersPolicyAccessControlAllowMethodsValues
-> ((# #) -> r) -> ((# #) -> r) -> r
ResponseHeadersPolicyAccessControlAllowMethodsValues_GET = ResponseHeadersPolicyAccessControlAllowMethodsValues' "GET"

pattern ResponseHeadersPolicyAccessControlAllowMethodsValues_HEAD :: ResponseHeadersPolicyAccessControlAllowMethodsValues
pattern $bResponseHeadersPolicyAccessControlAllowMethodsValues_HEAD :: ResponseHeadersPolicyAccessControlAllowMethodsValues
$mResponseHeadersPolicyAccessControlAllowMethodsValues_HEAD :: forall {r}.
ResponseHeadersPolicyAccessControlAllowMethodsValues
-> ((# #) -> r) -> ((# #) -> r) -> r
ResponseHeadersPolicyAccessControlAllowMethodsValues_HEAD = ResponseHeadersPolicyAccessControlAllowMethodsValues' "HEAD"

pattern ResponseHeadersPolicyAccessControlAllowMethodsValues_OPTIONS :: ResponseHeadersPolicyAccessControlAllowMethodsValues
pattern $bResponseHeadersPolicyAccessControlAllowMethodsValues_OPTIONS :: ResponseHeadersPolicyAccessControlAllowMethodsValues
$mResponseHeadersPolicyAccessControlAllowMethodsValues_OPTIONS :: forall {r}.
ResponseHeadersPolicyAccessControlAllowMethodsValues
-> ((# #) -> r) -> ((# #) -> r) -> r
ResponseHeadersPolicyAccessControlAllowMethodsValues_OPTIONS = ResponseHeadersPolicyAccessControlAllowMethodsValues' "OPTIONS"

pattern ResponseHeadersPolicyAccessControlAllowMethodsValues_PATCH :: ResponseHeadersPolicyAccessControlAllowMethodsValues
pattern $bResponseHeadersPolicyAccessControlAllowMethodsValues_PATCH :: ResponseHeadersPolicyAccessControlAllowMethodsValues
$mResponseHeadersPolicyAccessControlAllowMethodsValues_PATCH :: forall {r}.
ResponseHeadersPolicyAccessControlAllowMethodsValues
-> ((# #) -> r) -> ((# #) -> r) -> r
ResponseHeadersPolicyAccessControlAllowMethodsValues_PATCH = ResponseHeadersPolicyAccessControlAllowMethodsValues' "PATCH"

pattern ResponseHeadersPolicyAccessControlAllowMethodsValues_POST :: ResponseHeadersPolicyAccessControlAllowMethodsValues
pattern $bResponseHeadersPolicyAccessControlAllowMethodsValues_POST :: ResponseHeadersPolicyAccessControlAllowMethodsValues
$mResponseHeadersPolicyAccessControlAllowMethodsValues_POST :: forall {r}.
ResponseHeadersPolicyAccessControlAllowMethodsValues
-> ((# #) -> r) -> ((# #) -> r) -> r
ResponseHeadersPolicyAccessControlAllowMethodsValues_POST = ResponseHeadersPolicyAccessControlAllowMethodsValues' "POST"

pattern ResponseHeadersPolicyAccessControlAllowMethodsValues_PUT :: ResponseHeadersPolicyAccessControlAllowMethodsValues
pattern $bResponseHeadersPolicyAccessControlAllowMethodsValues_PUT :: ResponseHeadersPolicyAccessControlAllowMethodsValues
$mResponseHeadersPolicyAccessControlAllowMethodsValues_PUT :: forall {r}.
ResponseHeadersPolicyAccessControlAllowMethodsValues
-> ((# #) -> r) -> ((# #) -> r) -> r
ResponseHeadersPolicyAccessControlAllowMethodsValues_PUT = ResponseHeadersPolicyAccessControlAllowMethodsValues' "PUT"

{-# COMPLETE
  ResponseHeadersPolicyAccessControlAllowMethodsValues_ALL,
  ResponseHeadersPolicyAccessControlAllowMethodsValues_DELETE,
  ResponseHeadersPolicyAccessControlAllowMethodsValues_GET,
  ResponseHeadersPolicyAccessControlAllowMethodsValues_HEAD,
  ResponseHeadersPolicyAccessControlAllowMethodsValues_OPTIONS,
  ResponseHeadersPolicyAccessControlAllowMethodsValues_PATCH,
  ResponseHeadersPolicyAccessControlAllowMethodsValues_POST,
  ResponseHeadersPolicyAccessControlAllowMethodsValues_PUT,
  ResponseHeadersPolicyAccessControlAllowMethodsValues'
  #-}