packages feed

stratosphere-0.46.0: library-gen/Stratosphere/Resources/CodePipelineCustomActionType.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html

module Stratosphere.Resources.CodePipelineCustomActionType where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.CodePipelineCustomActionTypeConfigurationProperties
import Stratosphere.ResourceProperties.CodePipelineCustomActionTypeArtifactDetails
import Stratosphere.ResourceProperties.CodePipelineCustomActionTypeSettings
import Stratosphere.ResourceProperties.Tag

-- | Full data type definition for CodePipelineCustomActionType. See
-- 'codePipelineCustomActionType' for a more convenient constructor.
data CodePipelineCustomActionType =
  CodePipelineCustomActionType
  { _codePipelineCustomActionTypeCategory :: Val Text
  , _codePipelineCustomActionTypeConfigurationProperties :: Maybe [CodePipelineCustomActionTypeConfigurationProperties]
  , _codePipelineCustomActionTypeInputArtifactDetails :: CodePipelineCustomActionTypeArtifactDetails
  , _codePipelineCustomActionTypeOutputArtifactDetails :: CodePipelineCustomActionTypeArtifactDetails
  , _codePipelineCustomActionTypeProvider :: Val Text
  , _codePipelineCustomActionTypeSettings :: Maybe CodePipelineCustomActionTypeSettings
  , _codePipelineCustomActionTypeTags :: Maybe [Tag]
  , _codePipelineCustomActionTypeVersion :: Val Text
  } deriving (Show, Eq)

instance ToResourceProperties CodePipelineCustomActionType where
  toResourceProperties CodePipelineCustomActionType{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::CodePipeline::CustomActionType"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ (Just . ("Category",) . toJSON) _codePipelineCustomActionTypeCategory
        , fmap (("ConfigurationProperties",) . toJSON) _codePipelineCustomActionTypeConfigurationProperties
        , (Just . ("InputArtifactDetails",) . toJSON) _codePipelineCustomActionTypeInputArtifactDetails
        , (Just . ("OutputArtifactDetails",) . toJSON) _codePipelineCustomActionTypeOutputArtifactDetails
        , (Just . ("Provider",) . toJSON) _codePipelineCustomActionTypeProvider
        , fmap (("Settings",) . toJSON) _codePipelineCustomActionTypeSettings
        , fmap (("Tags",) . toJSON) _codePipelineCustomActionTypeTags
        , (Just . ("Version",) . toJSON) _codePipelineCustomActionTypeVersion
        ]
    }

-- | Constructor for 'CodePipelineCustomActionType' containing required fields
-- as arguments.
codePipelineCustomActionType
  :: Val Text -- ^ 'cpcatCategory'
  -> CodePipelineCustomActionTypeArtifactDetails -- ^ 'cpcatInputArtifactDetails'
  -> CodePipelineCustomActionTypeArtifactDetails -- ^ 'cpcatOutputArtifactDetails'
  -> Val Text -- ^ 'cpcatProvider'
  -> Val Text -- ^ 'cpcatVersion'
  -> CodePipelineCustomActionType
codePipelineCustomActionType categoryarg inputArtifactDetailsarg outputArtifactDetailsarg providerarg versionarg =
  CodePipelineCustomActionType
  { _codePipelineCustomActionTypeCategory = categoryarg
  , _codePipelineCustomActionTypeConfigurationProperties = Nothing
  , _codePipelineCustomActionTypeInputArtifactDetails = inputArtifactDetailsarg
  , _codePipelineCustomActionTypeOutputArtifactDetails = outputArtifactDetailsarg
  , _codePipelineCustomActionTypeProvider = providerarg
  , _codePipelineCustomActionTypeSettings = Nothing
  , _codePipelineCustomActionTypeTags = Nothing
  , _codePipelineCustomActionTypeVersion = versionarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-category
cpcatCategory :: Lens' CodePipelineCustomActionType (Val Text)
cpcatCategory = lens _codePipelineCustomActionTypeCategory (\s a -> s { _codePipelineCustomActionTypeCategory = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-configurationproperties
cpcatConfigurationProperties :: Lens' CodePipelineCustomActionType (Maybe [CodePipelineCustomActionTypeConfigurationProperties])
cpcatConfigurationProperties = lens _codePipelineCustomActionTypeConfigurationProperties (\s a -> s { _codePipelineCustomActionTypeConfigurationProperties = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-inputartifactdetails
cpcatInputArtifactDetails :: Lens' CodePipelineCustomActionType CodePipelineCustomActionTypeArtifactDetails
cpcatInputArtifactDetails = lens _codePipelineCustomActionTypeInputArtifactDetails (\s a -> s { _codePipelineCustomActionTypeInputArtifactDetails = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-outputartifactdetails
cpcatOutputArtifactDetails :: Lens' CodePipelineCustomActionType CodePipelineCustomActionTypeArtifactDetails
cpcatOutputArtifactDetails = lens _codePipelineCustomActionTypeOutputArtifactDetails (\s a -> s { _codePipelineCustomActionTypeOutputArtifactDetails = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-provider
cpcatProvider :: Lens' CodePipelineCustomActionType (Val Text)
cpcatProvider = lens _codePipelineCustomActionTypeProvider (\s a -> s { _codePipelineCustomActionTypeProvider = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings
cpcatSettings :: Lens' CodePipelineCustomActionType (Maybe CodePipelineCustomActionTypeSettings)
cpcatSettings = lens _codePipelineCustomActionTypeSettings (\s a -> s { _codePipelineCustomActionTypeSettings = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-tags
cpcatTags :: Lens' CodePipelineCustomActionType (Maybe [Tag])
cpcatTags = lens _codePipelineCustomActionTypeTags (\s a -> s { _codePipelineCustomActionTypeTags = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-version
cpcatVersion :: Lens' CodePipelineCustomActionType (Val Text)
cpcatVersion = lens _codePipelineCustomActionTypeVersion (\s a -> s { _codePipelineCustomActionTypeVersion = a })