{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.Transfer.Types.WorkflowStep where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.Transfer.Types.CopyStepDetails
import Amazonka.Transfer.Types.CustomStepDetails
import Amazonka.Transfer.Types.DecryptStepDetails
import Amazonka.Transfer.Types.DeleteStepDetails
import Amazonka.Transfer.Types.TagStepDetails
import Amazonka.Transfer.Types.WorkflowStepType
data WorkflowStep = WorkflowStep'
{
WorkflowStep -> Maybe CopyStepDetails
copyStepDetails :: Prelude.Maybe CopyStepDetails,
WorkflowStep -> Maybe CustomStepDetails
customStepDetails :: Prelude.Maybe CustomStepDetails,
WorkflowStep -> Maybe DecryptStepDetails
decryptStepDetails :: Prelude.Maybe DecryptStepDetails,
WorkflowStep -> Maybe DeleteStepDetails
deleteStepDetails :: Prelude.Maybe DeleteStepDetails,
WorkflowStep -> Maybe TagStepDetails
tagStepDetails :: Prelude.Maybe TagStepDetails,
WorkflowStep -> Maybe WorkflowStepType
type' :: Prelude.Maybe WorkflowStepType
}
deriving (WorkflowStep -> WorkflowStep -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WorkflowStep -> WorkflowStep -> Bool
$c/= :: WorkflowStep -> WorkflowStep -> Bool
== :: WorkflowStep -> WorkflowStep -> Bool
$c== :: WorkflowStep -> WorkflowStep -> Bool
Prelude.Eq, ReadPrec [WorkflowStep]
ReadPrec WorkflowStep
Int -> ReadS WorkflowStep
ReadS [WorkflowStep]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [WorkflowStep]
$creadListPrec :: ReadPrec [WorkflowStep]
readPrec :: ReadPrec WorkflowStep
$creadPrec :: ReadPrec WorkflowStep
readList :: ReadS [WorkflowStep]
$creadList :: ReadS [WorkflowStep]
readsPrec :: Int -> ReadS WorkflowStep
$creadsPrec :: Int -> ReadS WorkflowStep
Prelude.Read, Int -> WorkflowStep -> ShowS
[WorkflowStep] -> ShowS
WorkflowStep -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WorkflowStep] -> ShowS
$cshowList :: [WorkflowStep] -> ShowS
show :: WorkflowStep -> String
$cshow :: WorkflowStep -> String
showsPrec :: Int -> WorkflowStep -> ShowS
$cshowsPrec :: Int -> WorkflowStep -> ShowS
Prelude.Show, forall x. Rep WorkflowStep x -> WorkflowStep
forall x. WorkflowStep -> Rep WorkflowStep x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep WorkflowStep x -> WorkflowStep
$cfrom :: forall x. WorkflowStep -> Rep WorkflowStep x
Prelude.Generic)
newWorkflowStep ::
WorkflowStep
newWorkflowStep :: WorkflowStep
newWorkflowStep =
WorkflowStep'
{ $sel:copyStepDetails:WorkflowStep' :: Maybe CopyStepDetails
copyStepDetails = forall a. Maybe a
Prelude.Nothing,
$sel:customStepDetails:WorkflowStep' :: Maybe CustomStepDetails
customStepDetails = forall a. Maybe a
Prelude.Nothing,
$sel:decryptStepDetails:WorkflowStep' :: Maybe DecryptStepDetails
decryptStepDetails = forall a. Maybe a
Prelude.Nothing,
$sel:deleteStepDetails:WorkflowStep' :: Maybe DeleteStepDetails
deleteStepDetails = forall a. Maybe a
Prelude.Nothing,
$sel:tagStepDetails:WorkflowStep' :: Maybe TagStepDetails
tagStepDetails = forall a. Maybe a
Prelude.Nothing,
$sel:type':WorkflowStep' :: Maybe WorkflowStepType
type' = forall a. Maybe a
Prelude.Nothing
}
workflowStep_copyStepDetails :: Lens.Lens' WorkflowStep (Prelude.Maybe CopyStepDetails)
workflowStep_copyStepDetails :: Lens' WorkflowStep (Maybe CopyStepDetails)
workflowStep_copyStepDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkflowStep' {Maybe CopyStepDetails
copyStepDetails :: Maybe CopyStepDetails
$sel:copyStepDetails:WorkflowStep' :: WorkflowStep -> Maybe CopyStepDetails
copyStepDetails} -> Maybe CopyStepDetails
copyStepDetails) (\s :: WorkflowStep
s@WorkflowStep' {} Maybe CopyStepDetails
a -> WorkflowStep
s {$sel:copyStepDetails:WorkflowStep' :: Maybe CopyStepDetails
copyStepDetails = Maybe CopyStepDetails
a} :: WorkflowStep)
workflowStep_customStepDetails :: Lens.Lens' WorkflowStep (Prelude.Maybe CustomStepDetails)
workflowStep_customStepDetails :: Lens' WorkflowStep (Maybe CustomStepDetails)
workflowStep_customStepDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkflowStep' {Maybe CustomStepDetails
customStepDetails :: Maybe CustomStepDetails
$sel:customStepDetails:WorkflowStep' :: WorkflowStep -> Maybe CustomStepDetails
customStepDetails} -> Maybe CustomStepDetails
customStepDetails) (\s :: WorkflowStep
s@WorkflowStep' {} Maybe CustomStepDetails
a -> WorkflowStep
s {$sel:customStepDetails:WorkflowStep' :: Maybe CustomStepDetails
customStepDetails = Maybe CustomStepDetails
a} :: WorkflowStep)
workflowStep_decryptStepDetails :: Lens.Lens' WorkflowStep (Prelude.Maybe DecryptStepDetails)
workflowStep_decryptStepDetails :: Lens' WorkflowStep (Maybe DecryptStepDetails)
workflowStep_decryptStepDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkflowStep' {Maybe DecryptStepDetails
decryptStepDetails :: Maybe DecryptStepDetails
$sel:decryptStepDetails:WorkflowStep' :: WorkflowStep -> Maybe DecryptStepDetails
decryptStepDetails} -> Maybe DecryptStepDetails
decryptStepDetails) (\s :: WorkflowStep
s@WorkflowStep' {} Maybe DecryptStepDetails
a -> WorkflowStep
s {$sel:decryptStepDetails:WorkflowStep' :: Maybe DecryptStepDetails
decryptStepDetails = Maybe DecryptStepDetails
a} :: WorkflowStep)
workflowStep_deleteStepDetails :: Lens.Lens' WorkflowStep (Prelude.Maybe DeleteStepDetails)
workflowStep_deleteStepDetails :: Lens' WorkflowStep (Maybe DeleteStepDetails)
workflowStep_deleteStepDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkflowStep' {Maybe DeleteStepDetails
deleteStepDetails :: Maybe DeleteStepDetails
$sel:deleteStepDetails:WorkflowStep' :: WorkflowStep -> Maybe DeleteStepDetails
deleteStepDetails} -> Maybe DeleteStepDetails
deleteStepDetails) (\s :: WorkflowStep
s@WorkflowStep' {} Maybe DeleteStepDetails
a -> WorkflowStep
s {$sel:deleteStepDetails:WorkflowStep' :: Maybe DeleteStepDetails
deleteStepDetails = Maybe DeleteStepDetails
a} :: WorkflowStep)
workflowStep_tagStepDetails :: Lens.Lens' WorkflowStep (Prelude.Maybe TagStepDetails)
workflowStep_tagStepDetails :: Lens' WorkflowStep (Maybe TagStepDetails)
workflowStep_tagStepDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkflowStep' {Maybe TagStepDetails
tagStepDetails :: Maybe TagStepDetails
$sel:tagStepDetails:WorkflowStep' :: WorkflowStep -> Maybe TagStepDetails
tagStepDetails} -> Maybe TagStepDetails
tagStepDetails) (\s :: WorkflowStep
s@WorkflowStep' {} Maybe TagStepDetails
a -> WorkflowStep
s {$sel:tagStepDetails:WorkflowStep' :: Maybe TagStepDetails
tagStepDetails = Maybe TagStepDetails
a} :: WorkflowStep)
workflowStep_type :: Lens.Lens' WorkflowStep (Prelude.Maybe WorkflowStepType)
workflowStep_type :: Lens' WorkflowStep (Maybe WorkflowStepType)
workflowStep_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WorkflowStep' {Maybe WorkflowStepType
type' :: Maybe WorkflowStepType
$sel:type':WorkflowStep' :: WorkflowStep -> Maybe WorkflowStepType
type'} -> Maybe WorkflowStepType
type') (\s :: WorkflowStep
s@WorkflowStep' {} Maybe WorkflowStepType
a -> WorkflowStep
s {$sel:type':WorkflowStep' :: Maybe WorkflowStepType
type' = Maybe WorkflowStepType
a} :: WorkflowStep)
instance Data.FromJSON WorkflowStep where
parseJSON :: Value -> Parser WorkflowStep
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"WorkflowStep"
( \Object
x ->
Maybe CopyStepDetails
-> Maybe CustomStepDetails
-> Maybe DecryptStepDetails
-> Maybe DeleteStepDetails
-> Maybe TagStepDetails
-> Maybe WorkflowStepType
-> WorkflowStep
WorkflowStep'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CopyStepDetails")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CustomStepDetails")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DecryptStepDetails")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DeleteStepDetails")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TagStepDetails")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Type")
)
instance Prelude.Hashable WorkflowStep where
hashWithSalt :: Int -> WorkflowStep -> Int
hashWithSalt Int
_salt WorkflowStep' {Maybe CustomStepDetails
Maybe DeleteStepDetails
Maybe DecryptStepDetails
Maybe CopyStepDetails
Maybe TagStepDetails
Maybe WorkflowStepType
type' :: Maybe WorkflowStepType
tagStepDetails :: Maybe TagStepDetails
deleteStepDetails :: Maybe DeleteStepDetails
decryptStepDetails :: Maybe DecryptStepDetails
customStepDetails :: Maybe CustomStepDetails
copyStepDetails :: Maybe CopyStepDetails
$sel:type':WorkflowStep' :: WorkflowStep -> Maybe WorkflowStepType
$sel:tagStepDetails:WorkflowStep' :: WorkflowStep -> Maybe TagStepDetails
$sel:deleteStepDetails:WorkflowStep' :: WorkflowStep -> Maybe DeleteStepDetails
$sel:decryptStepDetails:WorkflowStep' :: WorkflowStep -> Maybe DecryptStepDetails
$sel:customStepDetails:WorkflowStep' :: WorkflowStep -> Maybe CustomStepDetails
$sel:copyStepDetails:WorkflowStep' :: WorkflowStep -> Maybe CopyStepDetails
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CopyStepDetails
copyStepDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CustomStepDetails
customStepDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DecryptStepDetails
decryptStepDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DeleteStepDetails
deleteStepDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TagStepDetails
tagStepDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkflowStepType
type'
instance Prelude.NFData WorkflowStep where
rnf :: WorkflowStep -> ()
rnf WorkflowStep' {Maybe CustomStepDetails
Maybe DeleteStepDetails
Maybe DecryptStepDetails
Maybe CopyStepDetails
Maybe TagStepDetails
Maybe WorkflowStepType
type' :: Maybe WorkflowStepType
tagStepDetails :: Maybe TagStepDetails
deleteStepDetails :: Maybe DeleteStepDetails
decryptStepDetails :: Maybe DecryptStepDetails
customStepDetails :: Maybe CustomStepDetails
copyStepDetails :: Maybe CopyStepDetails
$sel:type':WorkflowStep' :: WorkflowStep -> Maybe WorkflowStepType
$sel:tagStepDetails:WorkflowStep' :: WorkflowStep -> Maybe TagStepDetails
$sel:deleteStepDetails:WorkflowStep' :: WorkflowStep -> Maybe DeleteStepDetails
$sel:decryptStepDetails:WorkflowStep' :: WorkflowStep -> Maybe DecryptStepDetails
$sel:customStepDetails:WorkflowStep' :: WorkflowStep -> Maybe CustomStepDetails
$sel:copyStepDetails:WorkflowStep' :: WorkflowStep -> Maybe CopyStepDetails
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe CopyStepDetails
copyStepDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CustomStepDetails
customStepDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DecryptStepDetails
decryptStepDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DeleteStepDetails
deleteStepDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TagStepDetails
tagStepDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkflowStepType
type'
instance Data.ToJSON WorkflowStep where
toJSON :: WorkflowStep -> Value
toJSON WorkflowStep' {Maybe CustomStepDetails
Maybe DeleteStepDetails
Maybe DecryptStepDetails
Maybe CopyStepDetails
Maybe TagStepDetails
Maybe WorkflowStepType
type' :: Maybe WorkflowStepType
tagStepDetails :: Maybe TagStepDetails
deleteStepDetails :: Maybe DeleteStepDetails
decryptStepDetails :: Maybe DecryptStepDetails
customStepDetails :: Maybe CustomStepDetails
copyStepDetails :: Maybe CopyStepDetails
$sel:type':WorkflowStep' :: WorkflowStep -> Maybe WorkflowStepType
$sel:tagStepDetails:WorkflowStep' :: WorkflowStep -> Maybe TagStepDetails
$sel:deleteStepDetails:WorkflowStep' :: WorkflowStep -> Maybe DeleteStepDetails
$sel:decryptStepDetails:WorkflowStep' :: WorkflowStep -> Maybe DecryptStepDetails
$sel:customStepDetails:WorkflowStep' :: WorkflowStep -> Maybe CustomStepDetails
$sel:copyStepDetails:WorkflowStep' :: WorkflowStep -> Maybe CopyStepDetails
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"CopyStepDetails" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CopyStepDetails
copyStepDetails,
(Key
"CustomStepDetails" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CustomStepDetails
customStepDetails,
(Key
"DecryptStepDetails" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DecryptStepDetails
decryptStepDetails,
(Key
"DeleteStepDetails" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DeleteStepDetails
deleteStepDetails,
(Key
"TagStepDetails" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TagStepDetails
tagStepDetails,
(Key
"Type" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe WorkflowStepType
type'
]
)