{-# 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.ServiceCatalogAppRegistry.Types.SyncAction
-- 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.ServiceCatalogAppRegistry.Types.SyncAction
  ( SyncAction
      ( ..,
        SyncAction_NO_ACTION,
        SyncAction_START_SYNC
      ),
  )
where

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

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

pattern SyncAction_NO_ACTION :: SyncAction
pattern $bSyncAction_NO_ACTION :: SyncAction
$mSyncAction_NO_ACTION :: forall r. SyncAction -> (Void# -> r) -> (Void# -> r) -> r
SyncAction_NO_ACTION = SyncAction' "NO_ACTION"

pattern SyncAction_START_SYNC :: SyncAction
pattern $bSyncAction_START_SYNC :: SyncAction
$mSyncAction_START_SYNC :: forall r. SyncAction -> (Void# -> r) -> (Void# -> r) -> r
SyncAction_START_SYNC = SyncAction' "START_SYNC"

{-# COMPLETE
  SyncAction_NO_ACTION,
  SyncAction_START_SYNC,
  SyncAction'
  #-}