packages feed

stratosphere-chatbot-1.0.0: gen/Stratosphere/Chatbot/SlackChannelConfiguration.hs

module Stratosphere.Chatbot.SlackChannelConfiguration (
        SlackChannelConfiguration(..), mkSlackChannelConfiguration
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data SlackChannelConfiguration
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html>
    SlackChannelConfiguration {haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-configurationname>
                               configurationName :: (Value Prelude.Text),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-customizationresourcearns>
                               customizationResourceArns :: (Prelude.Maybe (ValueList Prelude.Text)),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-guardrailpolicies>
                               guardrailPolicies :: (Prelude.Maybe (ValueList Prelude.Text)),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-iamrolearn>
                               iamRoleArn :: (Value Prelude.Text),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-logginglevel>
                               loggingLevel :: (Prelude.Maybe (Value Prelude.Text)),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-slackchannelid>
                               slackChannelId :: (Value Prelude.Text),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-slackworkspaceid>
                               slackWorkspaceId :: (Value Prelude.Text),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-snstopicarns>
                               snsTopicArns :: (Prelude.Maybe (ValueList Prelude.Text)),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-tags>
                               tags :: (Prelude.Maybe [Tag]),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-userrolerequired>
                               userRoleRequired :: (Prelude.Maybe (Value Prelude.Bool))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkSlackChannelConfiguration ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text
        -> Value Prelude.Text -> SlackChannelConfiguration
mkSlackChannelConfiguration
  configurationName
  iamRoleArn
  slackChannelId
  slackWorkspaceId
  = SlackChannelConfiguration
      {haddock_workaround_ = (), configurationName = configurationName,
       iamRoleArn = iamRoleArn, slackChannelId = slackChannelId,
       slackWorkspaceId = slackWorkspaceId,
       customizationResourceArns = Prelude.Nothing,
       guardrailPolicies = Prelude.Nothing,
       loggingLevel = Prelude.Nothing, snsTopicArns = Prelude.Nothing,
       tags = Prelude.Nothing, userRoleRequired = Prelude.Nothing}
instance ToResourceProperties SlackChannelConfiguration where
  toResourceProperties SlackChannelConfiguration {..}
    = ResourceProperties
        {awsType = "AWS::Chatbot::SlackChannelConfiguration",
         supportsTags = Prelude.True,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["ConfigurationName" JSON..= configurationName,
                            "IamRoleArn" JSON..= iamRoleArn,
                            "SlackChannelId" JSON..= slackChannelId,
                            "SlackWorkspaceId" JSON..= slackWorkspaceId]
                           (Prelude.catMaybes
                              [(JSON..=) "CustomizationResourceArns"
                                 Prelude.<$> customizationResourceArns,
                               (JSON..=) "GuardrailPolicies" Prelude.<$> guardrailPolicies,
                               (JSON..=) "LoggingLevel" Prelude.<$> loggingLevel,
                               (JSON..=) "SnsTopicArns" Prelude.<$> snsTopicArns,
                               (JSON..=) "Tags" Prelude.<$> tags,
                               (JSON..=) "UserRoleRequired" Prelude.<$> userRoleRequired]))}
instance JSON.ToJSON SlackChannelConfiguration where
  toJSON SlackChannelConfiguration {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["ConfigurationName" JSON..= configurationName,
               "IamRoleArn" JSON..= iamRoleArn,
               "SlackChannelId" JSON..= slackChannelId,
               "SlackWorkspaceId" JSON..= slackWorkspaceId]
              (Prelude.catMaybes
                 [(JSON..=) "CustomizationResourceArns"
                    Prelude.<$> customizationResourceArns,
                  (JSON..=) "GuardrailPolicies" Prelude.<$> guardrailPolicies,
                  (JSON..=) "LoggingLevel" Prelude.<$> loggingLevel,
                  (JSON..=) "SnsTopicArns" Prelude.<$> snsTopicArns,
                  (JSON..=) "Tags" Prelude.<$> tags,
                  (JSON..=) "UserRoleRequired" Prelude.<$> userRoleRequired])))
instance Property "ConfigurationName" SlackChannelConfiguration where
  type PropertyType "ConfigurationName" SlackChannelConfiguration = Value Prelude.Text
  set newValue SlackChannelConfiguration {..}
    = SlackChannelConfiguration {configurationName = newValue, ..}
instance Property "CustomizationResourceArns" SlackChannelConfiguration where
  type PropertyType "CustomizationResourceArns" SlackChannelConfiguration = ValueList Prelude.Text
  set newValue SlackChannelConfiguration {..}
    = SlackChannelConfiguration
        {customizationResourceArns = Prelude.pure newValue, ..}
instance Property "GuardrailPolicies" SlackChannelConfiguration where
  type PropertyType "GuardrailPolicies" SlackChannelConfiguration = ValueList Prelude.Text
  set newValue SlackChannelConfiguration {..}
    = SlackChannelConfiguration
        {guardrailPolicies = Prelude.pure newValue, ..}
instance Property "IamRoleArn" SlackChannelConfiguration where
  type PropertyType "IamRoleArn" SlackChannelConfiguration = Value Prelude.Text
  set newValue SlackChannelConfiguration {..}
    = SlackChannelConfiguration {iamRoleArn = newValue, ..}
instance Property "LoggingLevel" SlackChannelConfiguration where
  type PropertyType "LoggingLevel" SlackChannelConfiguration = Value Prelude.Text
  set newValue SlackChannelConfiguration {..}
    = SlackChannelConfiguration
        {loggingLevel = Prelude.pure newValue, ..}
instance Property "SlackChannelId" SlackChannelConfiguration where
  type PropertyType "SlackChannelId" SlackChannelConfiguration = Value Prelude.Text
  set newValue SlackChannelConfiguration {..}
    = SlackChannelConfiguration {slackChannelId = newValue, ..}
instance Property "SlackWorkspaceId" SlackChannelConfiguration where
  type PropertyType "SlackWorkspaceId" SlackChannelConfiguration = Value Prelude.Text
  set newValue SlackChannelConfiguration {..}
    = SlackChannelConfiguration {slackWorkspaceId = newValue, ..}
instance Property "SnsTopicArns" SlackChannelConfiguration where
  type PropertyType "SnsTopicArns" SlackChannelConfiguration = ValueList Prelude.Text
  set newValue SlackChannelConfiguration {..}
    = SlackChannelConfiguration
        {snsTopicArns = Prelude.pure newValue, ..}
instance Property "Tags" SlackChannelConfiguration where
  type PropertyType "Tags" SlackChannelConfiguration = [Tag]
  set newValue SlackChannelConfiguration {..}
    = SlackChannelConfiguration {tags = Prelude.pure newValue, ..}
instance Property "UserRoleRequired" SlackChannelConfiguration where
  type PropertyType "UserRoleRequired" SlackChannelConfiguration = Value Prelude.Bool
  set newValue SlackChannelConfiguration {..}
    = SlackChannelConfiguration
        {userRoleRequired = Prelude.pure newValue, ..}