module Stratosphere.Chatbot.MicrosoftTeamsChannelConfiguration ( MicrosoftTeamsChannelConfiguration(..), mkMicrosoftTeamsChannelConfiguration ) 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 MicrosoftTeamsChannelConfiguration = -- | See: MicrosoftTeamsChannelConfiguration {haddock_workaround_ :: (), -- | See: configurationName :: (Value Prelude.Text), -- | See: customizationResourceArns :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: guardrailPolicies :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: iamRoleArn :: (Value Prelude.Text), -- | See: loggingLevel :: (Prelude.Maybe (Value Prelude.Text)), -- | See: snsTopicArns :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: teamId :: (Value Prelude.Text), -- | See: teamsChannelId :: (Value Prelude.Text), -- | See: teamsChannelName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: teamsTenantId :: (Value Prelude.Text), -- | See: userRoleRequired :: (Prelude.Maybe (Value Prelude.Bool))} deriving stock (Prelude.Eq, Prelude.Show) mkMicrosoftTeamsChannelConfiguration :: Value Prelude.Text -> Value Prelude.Text -> Value Prelude.Text -> Value Prelude.Text -> Value Prelude.Text -> MicrosoftTeamsChannelConfiguration mkMicrosoftTeamsChannelConfiguration configurationName iamRoleArn teamId teamsChannelId teamsTenantId = MicrosoftTeamsChannelConfiguration {haddock_workaround_ = (), configurationName = configurationName, iamRoleArn = iamRoleArn, teamId = teamId, teamsChannelId = teamsChannelId, teamsTenantId = teamsTenantId, customizationResourceArns = Prelude.Nothing, guardrailPolicies = Prelude.Nothing, loggingLevel = Prelude.Nothing, snsTopicArns = Prelude.Nothing, tags = Prelude.Nothing, teamsChannelName = Prelude.Nothing, userRoleRequired = Prelude.Nothing} instance ToResourceProperties MicrosoftTeamsChannelConfiguration where toResourceProperties MicrosoftTeamsChannelConfiguration {..} = ResourceProperties {awsType = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["ConfigurationName" JSON..= configurationName, "IamRoleArn" JSON..= iamRoleArn, "TeamId" JSON..= teamId, "TeamsChannelId" JSON..= teamsChannelId, "TeamsTenantId" JSON..= teamsTenantId] (Prelude.catMaybes [(JSON..=) "CustomizationResourceArns" Prelude.<$> customizationResourceArns, (JSON..=) "GuardrailPolicies" Prelude.<$> guardrailPolicies, (JSON..=) "LoggingLevel" Prelude.<$> loggingLevel, (JSON..=) "SnsTopicArns" Prelude.<$> snsTopicArns, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "TeamsChannelName" Prelude.<$> teamsChannelName, (JSON..=) "UserRoleRequired" Prelude.<$> userRoleRequired]))} instance JSON.ToJSON MicrosoftTeamsChannelConfiguration where toJSON MicrosoftTeamsChannelConfiguration {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["ConfigurationName" JSON..= configurationName, "IamRoleArn" JSON..= iamRoleArn, "TeamId" JSON..= teamId, "TeamsChannelId" JSON..= teamsChannelId, "TeamsTenantId" JSON..= teamsTenantId] (Prelude.catMaybes [(JSON..=) "CustomizationResourceArns" Prelude.<$> customizationResourceArns, (JSON..=) "GuardrailPolicies" Prelude.<$> guardrailPolicies, (JSON..=) "LoggingLevel" Prelude.<$> loggingLevel, (JSON..=) "SnsTopicArns" Prelude.<$> snsTopicArns, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "TeamsChannelName" Prelude.<$> teamsChannelName, (JSON..=) "UserRoleRequired" Prelude.<$> userRoleRequired]))) instance Property "ConfigurationName" MicrosoftTeamsChannelConfiguration where type PropertyType "ConfigurationName" MicrosoftTeamsChannelConfiguration = Value Prelude.Text set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {configurationName = newValue, ..} instance Property "CustomizationResourceArns" MicrosoftTeamsChannelConfiguration where type PropertyType "CustomizationResourceArns" MicrosoftTeamsChannelConfiguration = ValueList Prelude.Text set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {customizationResourceArns = Prelude.pure newValue, ..} instance Property "GuardrailPolicies" MicrosoftTeamsChannelConfiguration where type PropertyType "GuardrailPolicies" MicrosoftTeamsChannelConfiguration = ValueList Prelude.Text set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {guardrailPolicies = Prelude.pure newValue, ..} instance Property "IamRoleArn" MicrosoftTeamsChannelConfiguration where type PropertyType "IamRoleArn" MicrosoftTeamsChannelConfiguration = Value Prelude.Text set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {iamRoleArn = newValue, ..} instance Property "LoggingLevel" MicrosoftTeamsChannelConfiguration where type PropertyType "LoggingLevel" MicrosoftTeamsChannelConfiguration = Value Prelude.Text set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {loggingLevel = Prelude.pure newValue, ..} instance Property "SnsTopicArns" MicrosoftTeamsChannelConfiguration where type PropertyType "SnsTopicArns" MicrosoftTeamsChannelConfiguration = ValueList Prelude.Text set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {snsTopicArns = Prelude.pure newValue, ..} instance Property "Tags" MicrosoftTeamsChannelConfiguration where type PropertyType "Tags" MicrosoftTeamsChannelConfiguration = [Tag] set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {tags = Prelude.pure newValue, ..} instance Property "TeamId" MicrosoftTeamsChannelConfiguration where type PropertyType "TeamId" MicrosoftTeamsChannelConfiguration = Value Prelude.Text set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {teamId = newValue, ..} instance Property "TeamsChannelId" MicrosoftTeamsChannelConfiguration where type PropertyType "TeamsChannelId" MicrosoftTeamsChannelConfiguration = Value Prelude.Text set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {teamsChannelId = newValue, ..} instance Property "TeamsChannelName" MicrosoftTeamsChannelConfiguration where type PropertyType "TeamsChannelName" MicrosoftTeamsChannelConfiguration = Value Prelude.Text set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {teamsChannelName = Prelude.pure newValue, ..} instance Property "TeamsTenantId" MicrosoftTeamsChannelConfiguration where type PropertyType "TeamsTenantId" MicrosoftTeamsChannelConfiguration = Value Prelude.Text set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {teamsTenantId = newValue, ..} instance Property "UserRoleRequired" MicrosoftTeamsChannelConfiguration where type PropertyType "UserRoleRequired" MicrosoftTeamsChannelConfiguration = Value Prelude.Bool set newValue MicrosoftTeamsChannelConfiguration {..} = MicrosoftTeamsChannelConfiguration {userRoleRequired = Prelude.pure newValue, ..}