content: module Stratosphere.ConnectCampaignsV2.Campaign.TelephonyOutboundModeProperty (
          module Exports, TelephonyOutboundModeProperty(..),
          mkTelephonyOutboundModeProperty
      ) where
  import qualified Data.Aeson as JSON
  import qualified Stratosphere.Prelude as Prelude
  import Stratosphere.Property
  import {-# SOURCE #-} Stratosphere.ConnectCampaignsV2.Campaign.PredictiveConfigProperty as Exports
  import {-# SOURCE #-} Stratosphere.ConnectCampaignsV2.Campaign.ProgressiveConfigProperty as Exports
  import Stratosphere.ResourceProperties
  data TelephonyOutboundModeProperty
    = TelephonyOutboundModeProperty {agentlessConfig :: (Prelude.Maybe JSON.Object),
                                     predictiveConfig :: (Prelude.Maybe PredictiveConfigProperty),
                                     progressiveConfig :: (Prelude.Maybe ProgressiveConfigProperty)}
    deriving stock (Prelude.Eq, Prelude.Show)
  mkTelephonyOutboundModeProperty :: TelephonyOutboundModeProperty
  mkTelephonyOutboundModeProperty
    = TelephonyOutboundModeProperty
        {agentlessConfig = Prelude.Nothing,
         predictiveConfig = Prelude.Nothing,
         progressiveConfig = Prelude.Nothing}
  instance ToResourceProperties TelephonyOutboundModeProperty where
    toResourceProperties TelephonyOutboundModeProperty {..}
      = ResourceProperties
          {awsType = "AWS::ConnectCampaignsV2::Campaign.TelephonyOutboundMode",
           supportsTags = Prelude.False,
           properties = Prelude.fromList
                          (Prelude.catMaybes
                             [(JSON..=) "AgentlessConfig" Prelude.<$> agentlessConfig,
                              (JSON..=) "PredictiveConfig" Prelude.<$> predictiveConfig,
                              (JSON..=) "ProgressiveConfig" Prelude.<$> progressiveConfig])}
  instance JSON.ToJSON TelephonyOutboundModeProperty where
    toJSON TelephonyOutboundModeProperty {..}
      = JSON.object
          (Prelude.fromList
             (Prelude.catMaybes
                [(JSON..=) "AgentlessConfig" Prelude.<$> agentlessConfig,
                 (JSON..=) "PredictiveConfig" Prelude.<$> predictiveConfig,
                 (JSON..=) "ProgressiveConfig" Prelude.<$> progressiveConfig]))
  instance Property "AgentlessConfig" TelephonyOutboundModeProperty where
    type PropertyType "AgentlessConfig" TelephonyOutboundModeProperty = JSON.Object
    set newValue TelephonyOutboundModeProperty {..}
      = TelephonyOutboundModeProperty
          {agentlessConfig = Prelude.pure newValue, ..}
  instance Property "PredictiveConfig" TelephonyOutboundModeProperty where
    type PropertyType "PredictiveConfig" TelephonyOutboundModeProperty = PredictiveConfigProperty
    set newValue TelephonyOutboundModeProperty {..}
      = TelephonyOutboundModeProperty
          {predictiveConfig = Prelude.pure newValue, ..}
  instance Property "ProgressiveConfig" TelephonyOutboundModeProperty where
    type PropertyType "ProgressiveConfig" TelephonyOutboundModeProperty = ProgressiveConfigProperty
    set newValue TelephonyOutboundModeProperty {..}
      = TelephonyOutboundModeProperty
          {progressiveConfig = Prelude.pure newValue, ..}