packages feed

stratosphere-connect-1.0.0: gen/Stratosphere/Connect/Instance/AttributesProperty.hs

module Stratosphere.Connect.Instance.AttributesProperty (
        AttributesProperty(..), mkAttributesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AttributesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html>
    AttributesProperty {haddock_workaround_ :: (),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-autoresolvebestvoices>
                        autoResolveBestVoices :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-contactlens>
                        contactLens :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-contactflowlogs>
                        contactflowLogs :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-earlymedia>
                        earlyMedia :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-enhancedchatmonitoring>
                        enhancedChatMonitoring :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-enhancedcontactmonitoring>
                        enhancedContactMonitoring :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-highvolumeoutbound>
                        highVolumeOutBound :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-inboundcalls>
                        inboundCalls :: (Value Prelude.Bool),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-multipartychatconference>
                        multiPartyChatConference :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-multipartyconference>
                        multiPartyConference :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-outboundcalls>
                        outboundCalls :: (Value Prelude.Bool),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-usecustomttsvoices>
                        useCustomTTSVoices :: (Prelude.Maybe (Value Prelude.Bool))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkAttributesProperty ::
  Value Prelude.Bool -> Value Prelude.Bool -> AttributesProperty
mkAttributesProperty inboundCalls outboundCalls
  = AttributesProperty
      {haddock_workaround_ = (), inboundCalls = inboundCalls,
       outboundCalls = outboundCalls,
       autoResolveBestVoices = Prelude.Nothing,
       contactLens = Prelude.Nothing, contactflowLogs = Prelude.Nothing,
       earlyMedia = Prelude.Nothing,
       enhancedChatMonitoring = Prelude.Nothing,
       enhancedContactMonitoring = Prelude.Nothing,
       highVolumeOutBound = Prelude.Nothing,
       multiPartyChatConference = Prelude.Nothing,
       multiPartyConference = Prelude.Nothing,
       useCustomTTSVoices = Prelude.Nothing}
instance ToResourceProperties AttributesProperty where
  toResourceProperties AttributesProperty {..}
    = ResourceProperties
        {awsType = "AWS::Connect::Instance.Attributes",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["InboundCalls" JSON..= inboundCalls,
                            "OutboundCalls" JSON..= outboundCalls]
                           (Prelude.catMaybes
                              [(JSON..=) "AutoResolveBestVoices"
                                 Prelude.<$> autoResolveBestVoices,
                               (JSON..=) "ContactLens" Prelude.<$> contactLens,
                               (JSON..=) "ContactflowLogs" Prelude.<$> contactflowLogs,
                               (JSON..=) "EarlyMedia" Prelude.<$> earlyMedia,
                               (JSON..=) "EnhancedChatMonitoring"
                                 Prelude.<$> enhancedChatMonitoring,
                               (JSON..=) "EnhancedContactMonitoring"
                                 Prelude.<$> enhancedContactMonitoring,
                               (JSON..=) "HighVolumeOutBound" Prelude.<$> highVolumeOutBound,
                               (JSON..=) "MultiPartyChatConference"
                                 Prelude.<$> multiPartyChatConference,
                               (JSON..=) "MultiPartyConference" Prelude.<$> multiPartyConference,
                               (JSON..=) "UseCustomTTSVoices" Prelude.<$> useCustomTTSVoices]))}
instance JSON.ToJSON AttributesProperty where
  toJSON AttributesProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["InboundCalls" JSON..= inboundCalls,
               "OutboundCalls" JSON..= outboundCalls]
              (Prelude.catMaybes
                 [(JSON..=) "AutoResolveBestVoices"
                    Prelude.<$> autoResolveBestVoices,
                  (JSON..=) "ContactLens" Prelude.<$> contactLens,
                  (JSON..=) "ContactflowLogs" Prelude.<$> contactflowLogs,
                  (JSON..=) "EarlyMedia" Prelude.<$> earlyMedia,
                  (JSON..=) "EnhancedChatMonitoring"
                    Prelude.<$> enhancedChatMonitoring,
                  (JSON..=) "EnhancedContactMonitoring"
                    Prelude.<$> enhancedContactMonitoring,
                  (JSON..=) "HighVolumeOutBound" Prelude.<$> highVolumeOutBound,
                  (JSON..=) "MultiPartyChatConference"
                    Prelude.<$> multiPartyChatConference,
                  (JSON..=) "MultiPartyConference" Prelude.<$> multiPartyConference,
                  (JSON..=) "UseCustomTTSVoices" Prelude.<$> useCustomTTSVoices])))
instance Property "AutoResolveBestVoices" AttributesProperty where
  type PropertyType "AutoResolveBestVoices" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty
        {autoResolveBestVoices = Prelude.pure newValue, ..}
instance Property "ContactLens" AttributesProperty where
  type PropertyType "ContactLens" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty {contactLens = Prelude.pure newValue, ..}
instance Property "ContactflowLogs" AttributesProperty where
  type PropertyType "ContactflowLogs" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty {contactflowLogs = Prelude.pure newValue, ..}
instance Property "EarlyMedia" AttributesProperty where
  type PropertyType "EarlyMedia" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty {earlyMedia = Prelude.pure newValue, ..}
instance Property "EnhancedChatMonitoring" AttributesProperty where
  type PropertyType "EnhancedChatMonitoring" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty
        {enhancedChatMonitoring = Prelude.pure newValue, ..}
instance Property "EnhancedContactMonitoring" AttributesProperty where
  type PropertyType "EnhancedContactMonitoring" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty
        {enhancedContactMonitoring = Prelude.pure newValue, ..}
instance Property "HighVolumeOutBound" AttributesProperty where
  type PropertyType "HighVolumeOutBound" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty
        {highVolumeOutBound = Prelude.pure newValue, ..}
instance Property "InboundCalls" AttributesProperty where
  type PropertyType "InboundCalls" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty {inboundCalls = newValue, ..}
instance Property "MultiPartyChatConference" AttributesProperty where
  type PropertyType "MultiPartyChatConference" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty
        {multiPartyChatConference = Prelude.pure newValue, ..}
instance Property "MultiPartyConference" AttributesProperty where
  type PropertyType "MultiPartyConference" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty
        {multiPartyConference = Prelude.pure newValue, ..}
instance Property "OutboundCalls" AttributesProperty where
  type PropertyType "OutboundCalls" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty {outboundCalls = newValue, ..}
instance Property "UseCustomTTSVoices" AttributesProperty where
  type PropertyType "UseCustomTTSVoices" AttributesProperty = Value Prelude.Bool
  set newValue AttributesProperty {..}
    = AttributesProperty
        {useCustomTTSVoices = Prelude.pure newValue, ..}