{-# 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.Route53AutoNaming.Types.OperationTargetType
-- 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.Route53AutoNaming.Types.OperationTargetType
  ( OperationTargetType
      ( ..,
        OperationTargetType_INSTANCE,
        OperationTargetType_NAMESPACE,
        OperationTargetType_SERVICE
      ),
  )
where

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

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

pattern OperationTargetType_INSTANCE :: OperationTargetType
pattern $bOperationTargetType_INSTANCE :: OperationTargetType
$mOperationTargetType_INSTANCE :: forall r. OperationTargetType -> (Void# -> r) -> (Void# -> r) -> r
OperationTargetType_INSTANCE = OperationTargetType' "INSTANCE"

pattern OperationTargetType_NAMESPACE :: OperationTargetType
pattern $bOperationTargetType_NAMESPACE :: OperationTargetType
$mOperationTargetType_NAMESPACE :: forall r. OperationTargetType -> (Void# -> r) -> (Void# -> r) -> r
OperationTargetType_NAMESPACE = OperationTargetType' "NAMESPACE"

pattern OperationTargetType_SERVICE :: OperationTargetType
pattern $bOperationTargetType_SERVICE :: OperationTargetType
$mOperationTargetType_SERVICE :: forall r. OperationTargetType -> (Void# -> r) -> (Void# -> r) -> r
OperationTargetType_SERVICE = OperationTargetType' "SERVICE"

{-# COMPLETE
  OperationTargetType_INSTANCE,
  OperationTargetType_NAMESPACE,
  OperationTargetType_SERVICE,
  OperationTargetType'
  #-}