{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype DependentServiceName = DependentServiceName'
  { DependentServiceName -> Text
fromDependentServiceName ::
      Data.Text
  }
  deriving stock
    ( Int -> DependentServiceName -> ShowS
[DependentServiceName] -> ShowS
DependentServiceName -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq DependentServiceName
Int -> DependentServiceName -> Int
DependentServiceName -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: DependentServiceName -> ()
$crnf :: DependentServiceName -> ()
Prelude.NFData,
      Text -> Either String DependentServiceName
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String DependentServiceName
$cfromText :: Text -> Either String DependentServiceName
Data.FromText,
      DependentServiceName -> Text
forall a. (a -> Text) -> ToText a
toText :: DependentServiceName -> Text
$ctoText :: DependentServiceName -> Text
Data.ToText,
      DependentServiceName -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: DependentServiceName -> ByteString
$ctoBS :: DependentServiceName -> ByteString
Data.ToByteString,
      DependentServiceName -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: DependentServiceName -> ByteStringBuilder
$cbuild :: DependentServiceName -> ByteStringBuilder
Data.ToLog,
      HeaderName -> DependentServiceName -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> DependentServiceName -> [Header]
$ctoHeader :: HeaderName -> DependentServiceName -> [Header]
Data.ToHeader,
      DependentServiceName -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: DependentServiceName -> QueryString
$ctoQuery :: DependentServiceName -> QueryString
Data.ToQuery,
      Value -> Parser [DependentServiceName]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [DependentServiceName]
FromJSONKeyFunction DependentServiceName
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [DependentServiceName]
$cfromJSONKeyList :: FromJSONKeyFunction [DependentServiceName]
fromJSONKey :: FromJSONKeyFunction DependentServiceName
$cfromJSONKey :: FromJSONKeyFunction DependentServiceName
Data.FromJSONKey,
      [DependentServiceName] -> Encoding
[DependentServiceName] -> Value
DependentServiceName -> Encoding
DependentServiceName -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [DependentServiceName]
ToJSONKeyFunction DependentServiceName
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [DependentServiceName]
$ctoJSONKeyList :: ToJSONKeyFunction [DependentServiceName]
toJSONKey :: ToJSONKeyFunction DependentServiceName
$ctoJSONKey :: ToJSONKeyFunction DependentServiceName
Data.ToJSONKey,
      [Node] -> Either String DependentServiceName
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String DependentServiceName
$cparseXML :: [Node] -> Either String DependentServiceName
Data.FromXML,
      DependentServiceName -> XML
forall a. (a -> XML) -> ToXML a
toXML :: DependentServiceName -> XML
$ctoXML :: DependentServiceName -> XML
Data.ToXML
    )

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

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

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

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

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