packages feed

stratosphere-0.41.0: library-gen/Stratosphere/Resources/SSMMaintenanceWindowTask.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html

module Stratosphere.Resources.SSMMaintenanceWindowTask where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.SSMMaintenanceWindowTaskLoggingInfo
import Stratosphere.ResourceProperties.SSMMaintenanceWindowTaskTarget
import Stratosphere.ResourceProperties.SSMMaintenanceWindowTaskTaskInvocationParameters

-- | Full data type definition for SSMMaintenanceWindowTask. See
-- 'ssmMaintenanceWindowTask' for a more convenient constructor.
data SSMMaintenanceWindowTask =
  SSMMaintenanceWindowTask
  { _sSMMaintenanceWindowTaskDescription :: Maybe (Val Text)
  , _sSMMaintenanceWindowTaskLoggingInfo :: Maybe SSMMaintenanceWindowTaskLoggingInfo
  , _sSMMaintenanceWindowTaskMaxConcurrency :: Val Text
  , _sSMMaintenanceWindowTaskMaxErrors :: Val Text
  , _sSMMaintenanceWindowTaskName :: Maybe (Val Text)
  , _sSMMaintenanceWindowTaskPriority :: Val Integer
  , _sSMMaintenanceWindowTaskServiceRoleArn :: Maybe (Val Text)
  , _sSMMaintenanceWindowTaskTargets :: [SSMMaintenanceWindowTaskTarget]
  , _sSMMaintenanceWindowTaskTaskArn :: Val Text
  , _sSMMaintenanceWindowTaskTaskInvocationParameters :: Maybe SSMMaintenanceWindowTaskTaskInvocationParameters
  , _sSMMaintenanceWindowTaskTaskParameters :: Maybe Object
  , _sSMMaintenanceWindowTaskTaskType :: Val Text
  , _sSMMaintenanceWindowTaskWindowId :: Val Text
  } deriving (Show, Eq)

instance ToResourceProperties SSMMaintenanceWindowTask where
  toResourceProperties SSMMaintenanceWindowTask{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::SSM::MaintenanceWindowTask"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ fmap (("Description",) . toJSON) _sSMMaintenanceWindowTaskDescription
        , fmap (("LoggingInfo",) . toJSON) _sSMMaintenanceWindowTaskLoggingInfo
        , (Just . ("MaxConcurrency",) . toJSON) _sSMMaintenanceWindowTaskMaxConcurrency
        , (Just . ("MaxErrors",) . toJSON) _sSMMaintenanceWindowTaskMaxErrors
        , fmap (("Name",) . toJSON) _sSMMaintenanceWindowTaskName
        , (Just . ("Priority",) . toJSON) _sSMMaintenanceWindowTaskPriority
        , fmap (("ServiceRoleArn",) . toJSON) _sSMMaintenanceWindowTaskServiceRoleArn
        , (Just . ("Targets",) . toJSON) _sSMMaintenanceWindowTaskTargets
        , (Just . ("TaskArn",) . toJSON) _sSMMaintenanceWindowTaskTaskArn
        , fmap (("TaskInvocationParameters",) . toJSON) _sSMMaintenanceWindowTaskTaskInvocationParameters
        , fmap (("TaskParameters",) . toJSON) _sSMMaintenanceWindowTaskTaskParameters
        , (Just . ("TaskType",) . toJSON) _sSMMaintenanceWindowTaskTaskType
        , (Just . ("WindowId",) . toJSON) _sSMMaintenanceWindowTaskWindowId
        ]
    }

-- | Constructor for 'SSMMaintenanceWindowTask' containing required fields as
-- arguments.
ssmMaintenanceWindowTask
  :: Val Text -- ^ 'ssmmwtMaxConcurrency'
  -> Val Text -- ^ 'ssmmwtMaxErrors'
  -> Val Integer -- ^ 'ssmmwtPriority'
  -> [SSMMaintenanceWindowTaskTarget] -- ^ 'ssmmwtTargets'
  -> Val Text -- ^ 'ssmmwtTaskArn'
  -> Val Text -- ^ 'ssmmwtTaskType'
  -> Val Text -- ^ 'ssmmwtWindowId'
  -> SSMMaintenanceWindowTask
ssmMaintenanceWindowTask maxConcurrencyarg maxErrorsarg priorityarg targetsarg taskArnarg taskTypearg windowIdarg =
  SSMMaintenanceWindowTask
  { _sSMMaintenanceWindowTaskDescription = Nothing
  , _sSMMaintenanceWindowTaskLoggingInfo = Nothing
  , _sSMMaintenanceWindowTaskMaxConcurrency = maxConcurrencyarg
  , _sSMMaintenanceWindowTaskMaxErrors = maxErrorsarg
  , _sSMMaintenanceWindowTaskName = Nothing
  , _sSMMaintenanceWindowTaskPriority = priorityarg
  , _sSMMaintenanceWindowTaskServiceRoleArn = Nothing
  , _sSMMaintenanceWindowTaskTargets = targetsarg
  , _sSMMaintenanceWindowTaskTaskArn = taskArnarg
  , _sSMMaintenanceWindowTaskTaskInvocationParameters = Nothing
  , _sSMMaintenanceWindowTaskTaskParameters = Nothing
  , _sSMMaintenanceWindowTaskTaskType = taskTypearg
  , _sSMMaintenanceWindowTaskWindowId = windowIdarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-description
ssmmwtDescription :: Lens' SSMMaintenanceWindowTask (Maybe (Val Text))
ssmmwtDescription = lens _sSMMaintenanceWindowTaskDescription (\s a -> s { _sSMMaintenanceWindowTaskDescription = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-logginginfo
ssmmwtLoggingInfo :: Lens' SSMMaintenanceWindowTask (Maybe SSMMaintenanceWindowTaskLoggingInfo)
ssmmwtLoggingInfo = lens _sSMMaintenanceWindowTaskLoggingInfo (\s a -> s { _sSMMaintenanceWindowTaskLoggingInfo = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-maxconcurrency
ssmmwtMaxConcurrency :: Lens' SSMMaintenanceWindowTask (Val Text)
ssmmwtMaxConcurrency = lens _sSMMaintenanceWindowTaskMaxConcurrency (\s a -> s { _sSMMaintenanceWindowTaskMaxConcurrency = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-maxerrors
ssmmwtMaxErrors :: Lens' SSMMaintenanceWindowTask (Val Text)
ssmmwtMaxErrors = lens _sSMMaintenanceWindowTaskMaxErrors (\s a -> s { _sSMMaintenanceWindowTaskMaxErrors = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-name
ssmmwtName :: Lens' SSMMaintenanceWindowTask (Maybe (Val Text))
ssmmwtName = lens _sSMMaintenanceWindowTaskName (\s a -> s { _sSMMaintenanceWindowTaskName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-priority
ssmmwtPriority :: Lens' SSMMaintenanceWindowTask (Val Integer)
ssmmwtPriority = lens _sSMMaintenanceWindowTaskPriority (\s a -> s { _sSMMaintenanceWindowTaskPriority = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-servicerolearn
ssmmwtServiceRoleArn :: Lens' SSMMaintenanceWindowTask (Maybe (Val Text))
ssmmwtServiceRoleArn = lens _sSMMaintenanceWindowTaskServiceRoleArn (\s a -> s { _sSMMaintenanceWindowTaskServiceRoleArn = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-targets
ssmmwtTargets :: Lens' SSMMaintenanceWindowTask [SSMMaintenanceWindowTaskTarget]
ssmmwtTargets = lens _sSMMaintenanceWindowTaskTargets (\s a -> s { _sSMMaintenanceWindowTaskTargets = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-taskarn
ssmmwtTaskArn :: Lens' SSMMaintenanceWindowTask (Val Text)
ssmmwtTaskArn = lens _sSMMaintenanceWindowTaskTaskArn (\s a -> s { _sSMMaintenanceWindowTaskTaskArn = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-taskinvocationparameters
ssmmwtTaskInvocationParameters :: Lens' SSMMaintenanceWindowTask (Maybe SSMMaintenanceWindowTaskTaskInvocationParameters)
ssmmwtTaskInvocationParameters = lens _sSMMaintenanceWindowTaskTaskInvocationParameters (\s a -> s { _sSMMaintenanceWindowTaskTaskInvocationParameters = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-taskparameters
ssmmwtTaskParameters :: Lens' SSMMaintenanceWindowTask (Maybe Object)
ssmmwtTaskParameters = lens _sSMMaintenanceWindowTaskTaskParameters (\s a -> s { _sSMMaintenanceWindowTaskTaskParameters = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-tasktype
ssmmwtTaskType :: Lens' SSMMaintenanceWindowTask (Val Text)
ssmmwtTaskType = lens _sSMMaintenanceWindowTaskTaskType (\s a -> s { _sSMMaintenanceWindowTaskTaskType = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindowtask.html#cfn-ssm-maintenancewindowtask-windowid
ssmmwtWindowId :: Lens' SSMMaintenanceWindowTask (Val Text)
ssmmwtWindowId = lens _sSMMaintenanceWindowTaskWindowId (\s a -> s { _sSMMaintenanceWindowTaskWindowId = a })