{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.SmsVoice.Types.VoiceMessageContent -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.SmsVoice.Types.VoiceMessageContent where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude import Amazonka.SmsVoice.Types.CallInstructionsMessageType import Amazonka.SmsVoice.Types.PlainTextMessageType import Amazonka.SmsVoice.Types.SSMLMessageType -- | An object that contains a voice message and information about the -- recipient that you want to send it to. -- -- /See:/ 'newVoiceMessageContent' smart constructor. data VoiceMessageContent = VoiceMessageContent' { callInstructionsMessage :: Prelude.Maybe CallInstructionsMessageType, plainTextMessage :: Prelude.Maybe PlainTextMessageType, sSMLMessage :: Prelude.Maybe SSMLMessageType } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'VoiceMessageContent' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'callInstructionsMessage', 'voiceMessageContent_callInstructionsMessage' - Undocumented member. -- -- 'plainTextMessage', 'voiceMessageContent_plainTextMessage' - Undocumented member. -- -- 'sSMLMessage', 'voiceMessageContent_sSMLMessage' - Undocumented member. newVoiceMessageContent :: VoiceMessageContent newVoiceMessageContent = VoiceMessageContent' { callInstructionsMessage = Prelude.Nothing, plainTextMessage = Prelude.Nothing, sSMLMessage = Prelude.Nothing } -- | Undocumented member. voiceMessageContent_callInstructionsMessage :: Lens.Lens' VoiceMessageContent (Prelude.Maybe CallInstructionsMessageType) voiceMessageContent_callInstructionsMessage = Lens.lens (\VoiceMessageContent' {callInstructionsMessage} -> callInstructionsMessage) (\s@VoiceMessageContent' {} a -> s {callInstructionsMessage = a} :: VoiceMessageContent) -- | Undocumented member. voiceMessageContent_plainTextMessage :: Lens.Lens' VoiceMessageContent (Prelude.Maybe PlainTextMessageType) voiceMessageContent_plainTextMessage = Lens.lens (\VoiceMessageContent' {plainTextMessage} -> plainTextMessage) (\s@VoiceMessageContent' {} a -> s {plainTextMessage = a} :: VoiceMessageContent) -- | Undocumented member. voiceMessageContent_sSMLMessage :: Lens.Lens' VoiceMessageContent (Prelude.Maybe SSMLMessageType) voiceMessageContent_sSMLMessage = Lens.lens (\VoiceMessageContent' {sSMLMessage} -> sSMLMessage) (\s@VoiceMessageContent' {} a -> s {sSMLMessage = a} :: VoiceMessageContent) instance Prelude.Hashable VoiceMessageContent where hashWithSalt _salt VoiceMessageContent' {..} = _salt `Prelude.hashWithSalt` callInstructionsMessage `Prelude.hashWithSalt` plainTextMessage `Prelude.hashWithSalt` sSMLMessage instance Prelude.NFData VoiceMessageContent where rnf VoiceMessageContent' {..} = Prelude.rnf callInstructionsMessage `Prelude.seq` Prelude.rnf plainTextMessage `Prelude.seq` Prelude.rnf sSMLMessage instance Data.ToJSON VoiceMessageContent where toJSON VoiceMessageContent' {..} = Data.object ( Prelude.catMaybes [ ("CallInstructionsMessage" Data..=) Prelude.<$> callInstructionsMessage, ("PlainTextMessage" Data..=) Prelude.<$> plainTextMessage, ("SSMLMessage" Data..=) Prelude.<$> sSMLMessage ] )