{-# 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.Glacier.Types.CannedACL
-- 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.Glacier.Types.CannedACL
  ( CannedACL
      ( ..,
        CannedACL_Authenticated_read,
        CannedACL_Aws_exec_read,
        CannedACL_Bucket_owner_full_control,
        CannedACL_Bucket_owner_read,
        CannedACL_Private,
        CannedACL_Public_read,
        CannedACL_Public_read_write
      ),
  )
where

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

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

pattern CannedACL_Authenticated_read :: CannedACL
pattern $bCannedACL_Authenticated_read :: CannedACL
$mCannedACL_Authenticated_read :: forall r. CannedACL -> (Void# -> r) -> (Void# -> r) -> r
CannedACL_Authenticated_read = CannedACL' "authenticated-read"

pattern CannedACL_Aws_exec_read :: CannedACL
pattern $bCannedACL_Aws_exec_read :: CannedACL
$mCannedACL_Aws_exec_read :: forall r. CannedACL -> (Void# -> r) -> (Void# -> r) -> r
CannedACL_Aws_exec_read = CannedACL' "aws-exec-read"

pattern CannedACL_Bucket_owner_full_control :: CannedACL
pattern $bCannedACL_Bucket_owner_full_control :: CannedACL
$mCannedACL_Bucket_owner_full_control :: forall r. CannedACL -> (Void# -> r) -> (Void# -> r) -> r
CannedACL_Bucket_owner_full_control = CannedACL' "bucket-owner-full-control"

pattern CannedACL_Bucket_owner_read :: CannedACL
pattern $bCannedACL_Bucket_owner_read :: CannedACL
$mCannedACL_Bucket_owner_read :: forall r. CannedACL -> (Void# -> r) -> (Void# -> r) -> r
CannedACL_Bucket_owner_read = CannedACL' "bucket-owner-read"

pattern CannedACL_Private :: CannedACL
pattern $bCannedACL_Private :: CannedACL
$mCannedACL_Private :: forall r. CannedACL -> (Void# -> r) -> (Void# -> r) -> r
CannedACL_Private = CannedACL' "private"

pattern CannedACL_Public_read :: CannedACL
pattern $bCannedACL_Public_read :: CannedACL
$mCannedACL_Public_read :: forall r. CannedACL -> (Void# -> r) -> (Void# -> r) -> r
CannedACL_Public_read = CannedACL' "public-read"

pattern CannedACL_Public_read_write :: CannedACL
pattern $bCannedACL_Public_read_write :: CannedACL
$mCannedACL_Public_read_write :: forall r. CannedACL -> (Void# -> r) -> (Void# -> r) -> r
CannedACL_Public_read_write = CannedACL' "public-read-write"

{-# COMPLETE
  CannedACL_Authenticated_read,
  CannedACL_Aws_exec_read,
  CannedACL_Bucket_owner_full_control,
  CannedACL_Bucket_owner_read,
  CannedACL_Private,
  CannedACL_Public_read,
  CannedACL_Public_read_write,
  CannedACL'
  #-}