{-# 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.AppStream.Types.Action
-- 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.AppStream.Types.Action
  ( Action
      ( ..,
        Action_CLIPBOARD_COPY_FROM_LOCAL_DEVICE,
        Action_CLIPBOARD_COPY_TO_LOCAL_DEVICE,
        Action_DOMAIN_PASSWORD_SIGNIN,
        Action_DOMAIN_SMART_CARD_SIGNIN,
        Action_FILE_DOWNLOAD,
        Action_FILE_UPLOAD,
        Action_PRINTING_TO_LOCAL_DEVICE
      ),
  )
where

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

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

pattern Action_CLIPBOARD_COPY_FROM_LOCAL_DEVICE :: Action
pattern $bAction_CLIPBOARD_COPY_FROM_LOCAL_DEVICE :: Action
$mAction_CLIPBOARD_COPY_FROM_LOCAL_DEVICE :: forall {r}. Action -> ((# #) -> r) -> ((# #) -> r) -> r
Action_CLIPBOARD_COPY_FROM_LOCAL_DEVICE = Action' "CLIPBOARD_COPY_FROM_LOCAL_DEVICE"

pattern Action_CLIPBOARD_COPY_TO_LOCAL_DEVICE :: Action
pattern $bAction_CLIPBOARD_COPY_TO_LOCAL_DEVICE :: Action
$mAction_CLIPBOARD_COPY_TO_LOCAL_DEVICE :: forall {r}. Action -> ((# #) -> r) -> ((# #) -> r) -> r
Action_CLIPBOARD_COPY_TO_LOCAL_DEVICE = Action' "CLIPBOARD_COPY_TO_LOCAL_DEVICE"

pattern Action_DOMAIN_PASSWORD_SIGNIN :: Action
pattern $bAction_DOMAIN_PASSWORD_SIGNIN :: Action
$mAction_DOMAIN_PASSWORD_SIGNIN :: forall {r}. Action -> ((# #) -> r) -> ((# #) -> r) -> r
Action_DOMAIN_PASSWORD_SIGNIN = Action' "DOMAIN_PASSWORD_SIGNIN"

pattern Action_DOMAIN_SMART_CARD_SIGNIN :: Action
pattern $bAction_DOMAIN_SMART_CARD_SIGNIN :: Action
$mAction_DOMAIN_SMART_CARD_SIGNIN :: forall {r}. Action -> ((# #) -> r) -> ((# #) -> r) -> r
Action_DOMAIN_SMART_CARD_SIGNIN = Action' "DOMAIN_SMART_CARD_SIGNIN"

pattern Action_FILE_DOWNLOAD :: Action
pattern $bAction_FILE_DOWNLOAD :: Action
$mAction_FILE_DOWNLOAD :: forall {r}. Action -> ((# #) -> r) -> ((# #) -> r) -> r
Action_FILE_DOWNLOAD = Action' "FILE_DOWNLOAD"

pattern Action_FILE_UPLOAD :: Action
pattern $bAction_FILE_UPLOAD :: Action
$mAction_FILE_UPLOAD :: forall {r}. Action -> ((# #) -> r) -> ((# #) -> r) -> r
Action_FILE_UPLOAD = Action' "FILE_UPLOAD"

pattern Action_PRINTING_TO_LOCAL_DEVICE :: Action
pattern $bAction_PRINTING_TO_LOCAL_DEVICE :: Action
$mAction_PRINTING_TO_LOCAL_DEVICE :: forall {r}. Action -> ((# #) -> r) -> ((# #) -> r) -> r
Action_PRINTING_TO_LOCAL_DEVICE = Action' "PRINTING_TO_LOCAL_DEVICE"

{-# COMPLETE
  Action_CLIPBOARD_COPY_FROM_LOCAL_DEVICE,
  Action_CLIPBOARD_COPY_TO_LOCAL_DEVICE,
  Action_DOMAIN_PASSWORD_SIGNIN,
  Action_DOMAIN_SMART_CARD_SIGNIN,
  Action_FILE_DOWNLOAD,
  Action_FILE_UPLOAD,
  Action_PRINTING_TO_LOCAL_DEVICE,
  Action'
  #-}