{-# 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.FMS.Types.DependentServiceName
-- 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.FMS.Types.DependentServiceName
  ( DependentServiceName
      ( ..,
        DependentServiceName_AWSCONFIG,
        DependentServiceName_AWSSHIELD_ADVANCED,
        DependentServiceName_AWSVPC,
        DependentServiceName_AWSWAF
      ),
  )
where

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

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

pattern DependentServiceName_AWSCONFIG :: DependentServiceName
pattern $bDependentServiceName_AWSCONFIG :: DependentServiceName
$mDependentServiceName_AWSCONFIG :: forall r. DependentServiceName -> (Void# -> r) -> (Void# -> r) -> r
DependentServiceName_AWSCONFIG = DependentServiceName' "AWSCONFIG"

pattern DependentServiceName_AWSSHIELD_ADVANCED :: DependentServiceName
pattern $bDependentServiceName_AWSSHIELD_ADVANCED :: DependentServiceName
$mDependentServiceName_AWSSHIELD_ADVANCED :: forall r. DependentServiceName -> (Void# -> r) -> (Void# -> r) -> r
DependentServiceName_AWSSHIELD_ADVANCED = DependentServiceName' "AWSSHIELD_ADVANCED"

pattern DependentServiceName_AWSVPC :: DependentServiceName
pattern $bDependentServiceName_AWSVPC :: DependentServiceName
$mDependentServiceName_AWSVPC :: forall r. DependentServiceName -> (Void# -> r) -> (Void# -> r) -> r
DependentServiceName_AWSVPC = DependentServiceName' "AWSVPC"

pattern DependentServiceName_AWSWAF :: DependentServiceName
pattern $bDependentServiceName_AWSWAF :: DependentServiceName
$mDependentServiceName_AWSWAF :: forall r. DependentServiceName -> (Void# -> r) -> (Void# -> r) -> r
DependentServiceName_AWSWAF = DependentServiceName' "AWSWAF"

{-# COMPLETE
  DependentServiceName_AWSCONFIG,
  DependentServiceName_AWSSHIELD_ADVANCED,
  DependentServiceName_AWSVPC,
  DependentServiceName_AWSWAF,
  DependentServiceName'
  #-}