{-# 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.DrS.Types.FailbackLaunchType
-- 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.DrS.Types.FailbackLaunchType
  ( FailbackLaunchType
      ( ..,
        FailbackLaunchType_DRILL,
        FailbackLaunchType_RECOVERY
      ),
  )
where

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

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

pattern FailbackLaunchType_DRILL :: FailbackLaunchType
pattern $bFailbackLaunchType_DRILL :: FailbackLaunchType
$mFailbackLaunchType_DRILL :: forall {r}. FailbackLaunchType -> ((# #) -> r) -> ((# #) -> r) -> r
FailbackLaunchType_DRILL = FailbackLaunchType' "DRILL"

pattern FailbackLaunchType_RECOVERY :: FailbackLaunchType
pattern $bFailbackLaunchType_RECOVERY :: FailbackLaunchType
$mFailbackLaunchType_RECOVERY :: forall {r}. FailbackLaunchType -> ((# #) -> r) -> ((# #) -> r) -> r
FailbackLaunchType_RECOVERY = FailbackLaunchType' "RECOVERY"

{-# COMPLETE
  FailbackLaunchType_DRILL,
  FailbackLaunchType_RECOVERY,
  FailbackLaunchType'
  #-}