{-# 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.Forecast.Types.Month
-- 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.Forecast.Types.Month
  ( Month
      ( ..,
        Month_APRIL,
        Month_AUGUST,
        Month_DECEMBER,
        Month_FEBRUARY,
        Month_JANUARY,
        Month_JULY,
        Month_JUNE,
        Month_MARCH,
        Month_MAY,
        Month_NOVEMBER,
        Month_OCTOBER,
        Month_SEPTEMBER
      ),
  )
where

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

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

pattern Month_APRIL :: Month
pattern $bMonth_APRIL :: Month
$mMonth_APRIL :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_APRIL = Month' "APRIL"

pattern Month_AUGUST :: Month
pattern $bMonth_AUGUST :: Month
$mMonth_AUGUST :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_AUGUST = Month' "AUGUST"

pattern Month_DECEMBER :: Month
pattern $bMonth_DECEMBER :: Month
$mMonth_DECEMBER :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_DECEMBER = Month' "DECEMBER"

pattern Month_FEBRUARY :: Month
pattern $bMonth_FEBRUARY :: Month
$mMonth_FEBRUARY :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_FEBRUARY = Month' "FEBRUARY"

pattern Month_JANUARY :: Month
pattern $bMonth_JANUARY :: Month
$mMonth_JANUARY :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_JANUARY = Month' "JANUARY"

pattern Month_JULY :: Month
pattern $bMonth_JULY :: Month
$mMonth_JULY :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_JULY = Month' "JULY"

pattern Month_JUNE :: Month
pattern $bMonth_JUNE :: Month
$mMonth_JUNE :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_JUNE = Month' "JUNE"

pattern Month_MARCH :: Month
pattern $bMonth_MARCH :: Month
$mMonth_MARCH :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_MARCH = Month' "MARCH"

pattern Month_MAY :: Month
pattern $bMonth_MAY :: Month
$mMonth_MAY :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_MAY = Month' "MAY"

pattern Month_NOVEMBER :: Month
pattern $bMonth_NOVEMBER :: Month
$mMonth_NOVEMBER :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_NOVEMBER = Month' "NOVEMBER"

pattern Month_OCTOBER :: Month
pattern $bMonth_OCTOBER :: Month
$mMonth_OCTOBER :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_OCTOBER = Month' "OCTOBER"

pattern Month_SEPTEMBER :: Month
pattern $bMonth_SEPTEMBER :: Month
$mMonth_SEPTEMBER :: forall {r}. Month -> ((# #) -> r) -> ((# #) -> r) -> r
Month_SEPTEMBER = Month' "SEPTEMBER"

{-# COMPLETE
  Month_APRIL,
  Month_AUGUST,
  Month_DECEMBER,
  Month_FEBRUARY,
  Month_JANUARY,
  Month_JULY,
  Month_JUNE,
  Month_MARCH,
  Month_MAY,
  Month_NOVEMBER,
  Month_OCTOBER,
  Month_SEPTEMBER,
  Month'
  #-}