{-# 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.Domain
-- 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.Forecast.Types.Domain
  ( Domain
      ( ..,
        Domain_CUSTOM,
        Domain_EC2_CAPACITY,
        Domain_INVENTORY_PLANNING,
        Domain_METRICS,
        Domain_RETAIL,
        Domain_WEB_TRAFFIC,
        Domain_WORK_FORCE
      ),
  )
where

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

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

pattern Domain_CUSTOM :: Domain
pattern $bDomain_CUSTOM :: Domain
$mDomain_CUSTOM :: forall r. Domain -> (Void# -> r) -> (Void# -> r) -> r
Domain_CUSTOM = Domain' "CUSTOM"

pattern Domain_EC2_CAPACITY :: Domain
pattern $bDomain_EC2_CAPACITY :: Domain
$mDomain_EC2_CAPACITY :: forall r. Domain -> (Void# -> r) -> (Void# -> r) -> r
Domain_EC2_CAPACITY = Domain' "EC2_CAPACITY"

pattern Domain_INVENTORY_PLANNING :: Domain
pattern $bDomain_INVENTORY_PLANNING :: Domain
$mDomain_INVENTORY_PLANNING :: forall r. Domain -> (Void# -> r) -> (Void# -> r) -> r
Domain_INVENTORY_PLANNING = Domain' "INVENTORY_PLANNING"

pattern Domain_METRICS :: Domain
pattern $bDomain_METRICS :: Domain
$mDomain_METRICS :: forall r. Domain -> (Void# -> r) -> (Void# -> r) -> r
Domain_METRICS = Domain' "METRICS"

pattern Domain_RETAIL :: Domain
pattern $bDomain_RETAIL :: Domain
$mDomain_RETAIL :: forall r. Domain -> (Void# -> r) -> (Void# -> r) -> r
Domain_RETAIL = Domain' "RETAIL"

pattern Domain_WEB_TRAFFIC :: Domain
pattern $bDomain_WEB_TRAFFIC :: Domain
$mDomain_WEB_TRAFFIC :: forall r. Domain -> (Void# -> r) -> (Void# -> r) -> r
Domain_WEB_TRAFFIC = Domain' "WEB_TRAFFIC"

pattern Domain_WORK_FORCE :: Domain
pattern $bDomain_WORK_FORCE :: Domain
$mDomain_WORK_FORCE :: forall r. Domain -> (Void# -> r) -> (Void# -> r) -> r
Domain_WORK_FORCE = Domain' "WORK_FORCE"

{-# COMPLETE
  Domain_CUSTOM,
  Domain_EC2_CAPACITY,
  Domain_INVENTORY_PLANNING,
  Domain_METRICS,
  Domain_RETAIL,
  Domain_WEB_TRAFFIC,
  Domain_WORK_FORCE,
  Domain'
  #-}