packages feed

stratosphere-codepipeline-1.0.0: gen/Stratosphere/CodePipeline/Pipeline.hs

module Stratosphere.CodePipeline.Pipeline (
        module Exports, Pipeline(..), mkPipeline
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CodePipeline.Pipeline.ArtifactStoreProperty as Exports
import {-# SOURCE #-} Stratosphere.CodePipeline.Pipeline.ArtifactStoreMapProperty as Exports
import {-# SOURCE #-} Stratosphere.CodePipeline.Pipeline.PipelineTriggerDeclarationProperty as Exports
import {-# SOURCE #-} Stratosphere.CodePipeline.Pipeline.StageDeclarationProperty as Exports
import {-# SOURCE #-} Stratosphere.CodePipeline.Pipeline.StageTransitionProperty as Exports
import {-# SOURCE #-} Stratosphere.CodePipeline.Pipeline.VariableDeclarationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data Pipeline
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html>
    Pipeline {haddock_workaround_ :: (),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-artifactstore>
              artifactStore :: (Prelude.Maybe ArtifactStoreProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-artifactstores>
              artifactStores :: (Prelude.Maybe [ArtifactStoreMapProperty]),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-disableinboundstagetransitions>
              disableInboundStageTransitions :: (Prelude.Maybe [StageTransitionProperty]),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-executionmode>
              executionMode :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-name>
              name :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-pipelinetype>
              pipelineType :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-restartexecutiononupdate>
              restartExecutionOnUpdate :: (Prelude.Maybe (Value Prelude.Bool)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-rolearn>
              roleArn :: (Value Prelude.Text),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-stages>
              stages :: [StageDeclarationProperty],
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-tags>
              tags :: (Prelude.Maybe [Tag]),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-triggers>
              triggers :: (Prelude.Maybe [PipelineTriggerDeclarationProperty]),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-variables>
              variables :: (Prelude.Maybe [VariableDeclarationProperty])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkPipeline ::
  Value Prelude.Text -> [StageDeclarationProperty] -> Pipeline
mkPipeline roleArn stages
  = Pipeline
      {haddock_workaround_ = (), roleArn = roleArn, stages = stages,
       artifactStore = Prelude.Nothing, artifactStores = Prelude.Nothing,
       disableInboundStageTransitions = Prelude.Nothing,
       executionMode = Prelude.Nothing, name = Prelude.Nothing,
       pipelineType = Prelude.Nothing,
       restartExecutionOnUpdate = Prelude.Nothing, tags = Prelude.Nothing,
       triggers = Prelude.Nothing, variables = Prelude.Nothing}
instance ToResourceProperties Pipeline where
  toResourceProperties Pipeline {..}
    = ResourceProperties
        {awsType = "AWS::CodePipeline::Pipeline",
         supportsTags = Prelude.True,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["RoleArn" JSON..= roleArn, "Stages" JSON..= stages]
                           (Prelude.catMaybes
                              [(JSON..=) "ArtifactStore" Prelude.<$> artifactStore,
                               (JSON..=) "ArtifactStores" Prelude.<$> artifactStores,
                               (JSON..=) "DisableInboundStageTransitions"
                                 Prelude.<$> disableInboundStageTransitions,
                               (JSON..=) "ExecutionMode" Prelude.<$> executionMode,
                               (JSON..=) "Name" Prelude.<$> name,
                               (JSON..=) "PipelineType" Prelude.<$> pipelineType,
                               (JSON..=) "RestartExecutionOnUpdate"
                                 Prelude.<$> restartExecutionOnUpdate,
                               (JSON..=) "Tags" Prelude.<$> tags,
                               (JSON..=) "Triggers" Prelude.<$> triggers,
                               (JSON..=) "Variables" Prelude.<$> variables]))}
instance JSON.ToJSON Pipeline where
  toJSON Pipeline {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["RoleArn" JSON..= roleArn, "Stages" JSON..= stages]
              (Prelude.catMaybes
                 [(JSON..=) "ArtifactStore" Prelude.<$> artifactStore,
                  (JSON..=) "ArtifactStores" Prelude.<$> artifactStores,
                  (JSON..=) "DisableInboundStageTransitions"
                    Prelude.<$> disableInboundStageTransitions,
                  (JSON..=) "ExecutionMode" Prelude.<$> executionMode,
                  (JSON..=) "Name" Prelude.<$> name,
                  (JSON..=) "PipelineType" Prelude.<$> pipelineType,
                  (JSON..=) "RestartExecutionOnUpdate"
                    Prelude.<$> restartExecutionOnUpdate,
                  (JSON..=) "Tags" Prelude.<$> tags,
                  (JSON..=) "Triggers" Prelude.<$> triggers,
                  (JSON..=) "Variables" Prelude.<$> variables])))
instance Property "ArtifactStore" Pipeline where
  type PropertyType "ArtifactStore" Pipeline = ArtifactStoreProperty
  set newValue Pipeline {..}
    = Pipeline {artifactStore = Prelude.pure newValue, ..}
instance Property "ArtifactStores" Pipeline where
  type PropertyType "ArtifactStores" Pipeline = [ArtifactStoreMapProperty]
  set newValue Pipeline {..}
    = Pipeline {artifactStores = Prelude.pure newValue, ..}
instance Property "DisableInboundStageTransitions" Pipeline where
  type PropertyType "DisableInboundStageTransitions" Pipeline = [StageTransitionProperty]
  set newValue Pipeline {..}
    = Pipeline
        {disableInboundStageTransitions = Prelude.pure newValue, ..}
instance Property "ExecutionMode" Pipeline where
  type PropertyType "ExecutionMode" Pipeline = Value Prelude.Text
  set newValue Pipeline {..}
    = Pipeline {executionMode = Prelude.pure newValue, ..}
instance Property "Name" Pipeline where
  type PropertyType "Name" Pipeline = Value Prelude.Text
  set newValue Pipeline {..}
    = Pipeline {name = Prelude.pure newValue, ..}
instance Property "PipelineType" Pipeline where
  type PropertyType "PipelineType" Pipeline = Value Prelude.Text
  set newValue Pipeline {..}
    = Pipeline {pipelineType = Prelude.pure newValue, ..}
instance Property "RestartExecutionOnUpdate" Pipeline where
  type PropertyType "RestartExecutionOnUpdate" Pipeline = Value Prelude.Bool
  set newValue Pipeline {..}
    = Pipeline {restartExecutionOnUpdate = Prelude.pure newValue, ..}
instance Property "RoleArn" Pipeline where
  type PropertyType "RoleArn" Pipeline = Value Prelude.Text
  set newValue Pipeline {..} = Pipeline {roleArn = newValue, ..}
instance Property "Stages" Pipeline where
  type PropertyType "Stages" Pipeline = [StageDeclarationProperty]
  set newValue Pipeline {..} = Pipeline {stages = newValue, ..}
instance Property "Tags" Pipeline where
  type PropertyType "Tags" Pipeline = [Tag]
  set newValue Pipeline {..}
    = Pipeline {tags = Prelude.pure newValue, ..}
instance Property "Triggers" Pipeline where
  type PropertyType "Triggers" Pipeline = [PipelineTriggerDeclarationProperty]
  set newValue Pipeline {..}
    = Pipeline {triggers = Prelude.pure newValue, ..}
instance Property "Variables" Pipeline where
  type PropertyType "Variables" Pipeline = [VariableDeclarationProperty]
  set newValue Pipeline {..}
    = Pipeline {variables = Prelude.pure newValue, ..}