{-# 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.QuickSight.Types.TimeGranularity
-- 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.QuickSight.Types.TimeGranularity
  ( TimeGranularity
      ( ..,
        TimeGranularity_DAY,
        TimeGranularity_HOUR,
        TimeGranularity_MILLISECOND,
        TimeGranularity_MINUTE,
        TimeGranularity_MONTH,
        TimeGranularity_QUARTER,
        TimeGranularity_SECOND,
        TimeGranularity_WEEK,
        TimeGranularity_YEAR
      ),
  )
where

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

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

pattern TimeGranularity_DAY :: TimeGranularity
pattern $bTimeGranularity_DAY :: TimeGranularity
$mTimeGranularity_DAY :: forall {r}. TimeGranularity -> ((# #) -> r) -> ((# #) -> r) -> r
TimeGranularity_DAY = TimeGranularity' "DAY"

pattern TimeGranularity_HOUR :: TimeGranularity
pattern $bTimeGranularity_HOUR :: TimeGranularity
$mTimeGranularity_HOUR :: forall {r}. TimeGranularity -> ((# #) -> r) -> ((# #) -> r) -> r
TimeGranularity_HOUR = TimeGranularity' "HOUR"

pattern TimeGranularity_MILLISECOND :: TimeGranularity
pattern $bTimeGranularity_MILLISECOND :: TimeGranularity
$mTimeGranularity_MILLISECOND :: forall {r}. TimeGranularity -> ((# #) -> r) -> ((# #) -> r) -> r
TimeGranularity_MILLISECOND = TimeGranularity' "MILLISECOND"

pattern TimeGranularity_MINUTE :: TimeGranularity
pattern $bTimeGranularity_MINUTE :: TimeGranularity
$mTimeGranularity_MINUTE :: forall {r}. TimeGranularity -> ((# #) -> r) -> ((# #) -> r) -> r
TimeGranularity_MINUTE = TimeGranularity' "MINUTE"

pattern TimeGranularity_MONTH :: TimeGranularity
pattern $bTimeGranularity_MONTH :: TimeGranularity
$mTimeGranularity_MONTH :: forall {r}. TimeGranularity -> ((# #) -> r) -> ((# #) -> r) -> r
TimeGranularity_MONTH = TimeGranularity' "MONTH"

pattern TimeGranularity_QUARTER :: TimeGranularity
pattern $bTimeGranularity_QUARTER :: TimeGranularity
$mTimeGranularity_QUARTER :: forall {r}. TimeGranularity -> ((# #) -> r) -> ((# #) -> r) -> r
TimeGranularity_QUARTER = TimeGranularity' "QUARTER"

pattern TimeGranularity_SECOND :: TimeGranularity
pattern $bTimeGranularity_SECOND :: TimeGranularity
$mTimeGranularity_SECOND :: forall {r}. TimeGranularity -> ((# #) -> r) -> ((# #) -> r) -> r
TimeGranularity_SECOND = TimeGranularity' "SECOND"

pattern TimeGranularity_WEEK :: TimeGranularity
pattern $bTimeGranularity_WEEK :: TimeGranularity
$mTimeGranularity_WEEK :: forall {r}. TimeGranularity -> ((# #) -> r) -> ((# #) -> r) -> r
TimeGranularity_WEEK = TimeGranularity' "WEEK"

pattern TimeGranularity_YEAR :: TimeGranularity
pattern $bTimeGranularity_YEAR :: TimeGranularity
$mTimeGranularity_YEAR :: forall {r}. TimeGranularity -> ((# #) -> r) -> ((# #) -> r) -> r
TimeGranularity_YEAR = TimeGranularity' "YEAR"

{-# COMPLETE
  TimeGranularity_DAY,
  TimeGranularity_HOUR,
  TimeGranularity_MILLISECOND,
  TimeGranularity_MINUTE,
  TimeGranularity_MONTH,
  TimeGranularity_QUARTER,
  TimeGranularity_SECOND,
  TimeGranularity_WEEK,
  TimeGranularity_YEAR,
  TimeGranularity'
  #-}