{-# 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.AutoScalingPlans.Types.ServiceNamespace
-- 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.AutoScalingPlans.Types.ServiceNamespace
  ( ServiceNamespace
      ( ..,
        ServiceNamespace_Autoscaling,
        ServiceNamespace_Dynamodb,
        ServiceNamespace_Ec2,
        ServiceNamespace_Ecs,
        ServiceNamespace_Rds
      ),
  )
where

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

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

pattern ServiceNamespace_Autoscaling :: ServiceNamespace
pattern $bServiceNamespace_Autoscaling :: ServiceNamespace
$mServiceNamespace_Autoscaling :: forall r. ServiceNamespace -> (Void# -> r) -> (Void# -> r) -> r
ServiceNamespace_Autoscaling = ServiceNamespace' "autoscaling"

pattern ServiceNamespace_Dynamodb :: ServiceNamespace
pattern $bServiceNamespace_Dynamodb :: ServiceNamespace
$mServiceNamespace_Dynamodb :: forall r. ServiceNamespace -> (Void# -> r) -> (Void# -> r) -> r
ServiceNamespace_Dynamodb = ServiceNamespace' "dynamodb"

pattern ServiceNamespace_Ec2 :: ServiceNamespace
pattern $bServiceNamespace_Ec2 :: ServiceNamespace
$mServiceNamespace_Ec2 :: forall r. ServiceNamespace -> (Void# -> r) -> (Void# -> r) -> r
ServiceNamespace_Ec2 = ServiceNamespace' "ec2"

pattern ServiceNamespace_Ecs :: ServiceNamespace
pattern $bServiceNamespace_Ecs :: ServiceNamespace
$mServiceNamespace_Ecs :: forall r. ServiceNamespace -> (Void# -> r) -> (Void# -> r) -> r
ServiceNamespace_Ecs = ServiceNamespace' "ecs"

pattern ServiceNamespace_Rds :: ServiceNamespace
pattern $bServiceNamespace_Rds :: ServiceNamespace
$mServiceNamespace_Rds :: forall r. ServiceNamespace -> (Void# -> r) -> (Void# -> r) -> r
ServiceNamespace_Rds = ServiceNamespace' "rds"

{-# COMPLETE
  ServiceNamespace_Autoscaling,
  ServiceNamespace_Dynamodb,
  ServiceNamespace_Ec2,
  ServiceNamespace_Ecs,
  ServiceNamespace_Rds,
  ServiceNamespace'
  #-}