{-# 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.Rekognition.Types.OrientationCorrection
-- 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.Rekognition.Types.OrientationCorrection
  ( OrientationCorrection
      ( ..,
        OrientationCorrection_ROTATE_0,
        OrientationCorrection_ROTATE_180,
        OrientationCorrection_ROTATE_270,
        OrientationCorrection_ROTATE_90
      ),
  )
where

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

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

pattern OrientationCorrection_ROTATE_0 :: OrientationCorrection
pattern $bOrientationCorrection_ROTATE_0 :: OrientationCorrection
$mOrientationCorrection_ROTATE_0 :: forall r.
OrientationCorrection -> (Void# -> r) -> (Void# -> r) -> r
OrientationCorrection_ROTATE_0 = OrientationCorrection' "ROTATE_0"

pattern OrientationCorrection_ROTATE_180 :: OrientationCorrection
pattern $bOrientationCorrection_ROTATE_180 :: OrientationCorrection
$mOrientationCorrection_ROTATE_180 :: forall r.
OrientationCorrection -> (Void# -> r) -> (Void# -> r) -> r
OrientationCorrection_ROTATE_180 = OrientationCorrection' "ROTATE_180"

pattern OrientationCorrection_ROTATE_270 :: OrientationCorrection
pattern $bOrientationCorrection_ROTATE_270 :: OrientationCorrection
$mOrientationCorrection_ROTATE_270 :: forall r.
OrientationCorrection -> (Void# -> r) -> (Void# -> r) -> r
OrientationCorrection_ROTATE_270 = OrientationCorrection' "ROTATE_270"

pattern OrientationCorrection_ROTATE_90 :: OrientationCorrection
pattern $bOrientationCorrection_ROTATE_90 :: OrientationCorrection
$mOrientationCorrection_ROTATE_90 :: forall r.
OrientationCorrection -> (Void# -> r) -> (Void# -> r) -> r
OrientationCorrection_ROTATE_90 = OrientationCorrection' "ROTATE_90"

{-# COMPLETE
  OrientationCorrection_ROTATE_0,
  OrientationCorrection_ROTATE_180,
  OrientationCorrection_ROTATE_270,
  OrientationCorrection_ROTATE_90,
  OrientationCorrection'
  #-}