Skip to content

send_voice_message

send_voice_message(
    destination_phone_number: PhoneNumber,
    origination_identity: VoiceMessageOriginationIdentity,
    *,
    config_overrides: Optional[PinpointSMSVoiceV2ClientConfig] = None,
    message_body: Optional[VoiceMessageBody] = None,
    message_body_text_type: Optional[VoiceMessageBodyTextType] = None,
    voice_id: Optional[VoiceId] = None,
    configuration_set_name: Optional[ConfigurationSetNameOrArn] = None,
    max_price_per_minute: Optional[MaxPrice] = None,
    time_to_live: Optional[TimeToLive] = None,
    context: Optional[ContextMap] = None,
    dry_run: Optional[bool] = None,
    protect_configuration_id: Optional[ProtectConfigurationIdOrArn] = None,
    message_feedback_enabled: Optional[bool] = None,
) -> SendVoiceMessageResult

Allows you to send a request that sends a voice message. This operation uses Amazon Polly to convert a text script into a voice message.

Parameters:

  • destination_phone_number (PhoneNumber) –

    The destination phone number in E.164 format.

  • origination_identity (VoiceMessageOriginationIdentity) –

    The origination identity to use for the voice call. This can be the PhoneNumber, PhoneNumberId, PhoneNumberArn, PoolId, or PoolArn.

    If you are using a shared End User Messaging SMS resource then you must use the full Amazon Resource Name(ARN).

  • message_body (Optional[VoiceMessageBody], default: None ) –

    The text to convert to a voice message.

  • message_body_text_type (Optional[VoiceMessageBodyTextType], default: None ) –

    Specifies if the MessageBody field contains text or speech synthesis markup language (SSML).

    • TEXT: This is the default value. When used the maximum character limit is 3000.

    • SSML: When used the maximum character limit is 6000 including SSML tagging.

  • voice_id (Optional[VoiceId], default: None ) –

    The voice for the Amazon Polly service to use. By default this is set to "MATTHEW".

  • configuration_set_name (Optional[ConfigurationSetNameOrArn], default: None ) –

    The name of the configuration set to use. This can be either the ConfigurationSetName or ConfigurationSetArn.

  • max_price_per_minute (Optional[MaxPrice], default: None ) –

    The maximum amount to spend per voice message, in US dollars.

  • time_to_live (Optional[TimeToLive], default: None ) –

    How long the voice message is valid for. By default this is 72 hours.

  • context (Optional[ContextMap], default: None ) –

    You can specify custom data in this field. If you do, that data is logged to the event destination.

  • dry_run (Optional[bool], default: None ) –

    When set to true, the message is checked and validated, but isn't sent to the end recipient.

  • protect_configuration_id (Optional[ProtectConfigurationIdOrArn], default: None ) –

    The unique identifier for the protect configuration.

  • message_feedback_enabled (Optional[bool], default: None ) –

    Set to true to enable message feedback for the message. When a user receives the message you need to update the message status using PutMessageFeedback.

Raises:

  • AccessDeniedException –

    The request was denied because you don't have sufficient permissions to access the resource.

  • ConflictException –

    Your request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time or it could be that the requested action isn't valid for the current state or configuration of the resource.

  • InternalServerException –

    The API encountered an unexpected error and couldn't complete the request. You might be able to successfully issue the request again in the future.

  • ResourceNotFoundException –

    A requested resource couldn't be found.

  • ServiceQuotaExceededException –

    The request would cause a service quota to be exceeded.

  • ThrottlingException –

    An error that occurred because too many requests were sent during a certain amount of time.

  • ValidationException –

    A validation exception for a field.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_pinpoint_sms_voice_v2/_services/pinpoint_sms_voice_v2.py
def send_voice_message(
    self,
    destination_phone_number: "capo_pinpoint_sms_voice_v2.types.phone_number.PhoneNumber",
    origination_identity: "capo_pinpoint_sms_voice_v2.types.voice_message_origination_identity.VoiceMessageOriginationIdentity",
    *,
    config_overrides: Optional[PinpointSMSVoiceV2ClientConfig] = None,
    message_body: Optional[
        "capo_pinpoint_sms_voice_v2.types.voice_message_body.VoiceMessageBody"
    ] = None,
    message_body_text_type: Optional[
        "capo_pinpoint_sms_voice_v2.types.voice_message_body_text_type.VoiceMessageBodyTextType"
    ] = None,
    voice_id: Optional["capo_pinpoint_sms_voice_v2.types.voice_id.VoiceId"] = None,
    configuration_set_name: Optional[
        "capo_pinpoint_sms_voice_v2.types.configuration_set_name_or_arn.ConfigurationSetNameOrArn"
    ] = None,
    max_price_per_minute: Optional[
        "capo_pinpoint_sms_voice_v2.types.max_price.MaxPrice"
    ] = None,
    time_to_live: Optional[
        "capo_pinpoint_sms_voice_v2.types.time_to_live.TimeToLive"
    ] = None,
    context: Optional[
        "capo_pinpoint_sms_voice_v2.types.context_map.ContextMap"
    ] = None,
    dry_run: Optional[bool] = None,
    protect_configuration_id: Optional[
        "capo_pinpoint_sms_voice_v2.types.protect_configuration_id_or_arn.ProtectConfigurationIdOrArn"
    ] = None,
    message_feedback_enabled: Optional[bool] = None,
) -> "capo_pinpoint_sms_voice_v2.types.send_voice_message_result.SendVoiceMessageResult":
    """<p>Allows you to send a request that sends a voice message. This operation uses <a href="http://aws.amazon.com/polly/">Amazon Polly</a> to convert a text script into a voice message.</p>

    Args:
        destination_phone_number: <p>The destination phone number in E.164 format.</p>
        origination_identity: <p>The origination identity to use for the voice call. This can be the PhoneNumber, PhoneNumberId, PhoneNumberArn, PoolId, or PoolArn.</p> <important> <p>If you are using a shared End User Messaging SMS resource then you must use the full Amazon Resource Name(ARN).</p> </important>
        message_body: <p>The text to convert to a voice message.</p>
        message_body_text_type: <p>Specifies if the MessageBody field contains text or <a href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">speech synthesis markup language (SSML)</a>.</p> <ul> <li> <p>TEXT: This is the default value. When used the maximum character limit is 3000.</p> </li> <li> <p>SSML: When used the maximum character limit is 6000 including SSML tagging.</p> </li> </ul>
        voice_id: <p>The voice for the <a href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly</a> service to use. By default this is set to "MATTHEW".</p>
        configuration_set_name: <p>The name of the configuration set to use. This can be either the ConfigurationSetName or ConfigurationSetArn.</p>
        max_price_per_minute: <p>The maximum amount to spend per voice message, in US dollars.</p>
        time_to_live: <p>How long the voice message is valid for. By default this is 72 hours.</p>
        context: <p>You can specify custom data in this field. If you do, that data is logged to the event destination.</p>
        dry_run: <p>When set to true, the message is checked and validated, but isn't sent to the end recipient.</p>
        protect_configuration_id: <p>The unique identifier for the protect configuration.</p>
        message_feedback_enabled: <p>Set to true to enable message feedback for the message. When a user receives the message you need to update the message status using <a>PutMessageFeedback</a>.</p>

    Raises:
        capo_pinpoint_sms_voice_v2.errors.access_denied_exception.AccessDeniedException: <p>The request was denied because you don't have sufficient permissions to access the resource.</p>
        capo_pinpoint_sms_voice_v2.errors.conflict_exception.ConflictException: <p>Your request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time or it could be that the requested action isn't valid for the current state or configuration of the resource.</p>
        capo_pinpoint_sms_voice_v2.errors.internal_server_exception.InternalServerException: <p>The API encountered an unexpected error and couldn't complete the request. You might be able to successfully issue the request again in the future.</p>
        capo_pinpoint_sms_voice_v2.errors.resource_not_found_exception.ResourceNotFoundException: <p>A requested resource couldn't be found.</p>
        capo_pinpoint_sms_voice_v2.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would cause a service quota to be exceeded.</p>
        capo_pinpoint_sms_voice_v2.errors.throttling_exception.ThrottlingException: <p>An error that occurred because too many requests were sent during a certain amount of time.</p>
        capo_pinpoint_sms_voice_v2.errors.validation_exception.ValidationException: <p>A validation exception for a field.</p>
        capo_pinpoint_sms_voice_v2.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_pinpoint_sms_voice_v2.types.send_voice_message_request.SendVoiceMessageRequest]",
    ) -> OperationResponse[
        "capo_pinpoint_sms_voice_v2.types.send_voice_message_result.SendVoiceMessageResult"
    ]:
        import capo_pinpoint_sms_voice_v2._operations.pinpoint_sms_voice_v2.send_voice_message

        output, http_response = (
            capo_pinpoint_sms_voice_v2._operations.pinpoint_sms_voice_v2.send_voice_message.send_voice_message(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("SendVoiceMessage")
    )
    input_: capo_pinpoint_sms_voice_v2.types.send_voice_message_request.SendVoiceMessageRequest = {
        "destination_phone_number": destination_phone_number,
        "origination_identity": origination_identity,
    }
    if message_body is not None:
        input_["message_body"] = message_body
    if message_body_text_type is not None:
        input_["message_body_text_type"] = message_body_text_type
    if voice_id is not None:
        input_["voice_id"] = voice_id
    if configuration_set_name is not None:
        input_["configuration_set_name"] = configuration_set_name
    if max_price_per_minute is not None:
        input_["max_price_per_minute"] = max_price_per_minute
    if time_to_live is not None:
        input_["time_to_live"] = time_to_live
    if context is not None:
        input_["context"] = context
    if dry_run is not None:
        input_["dry_run"] = dry_run
    if protect_configuration_id is not None:
        input_["protect_configuration_id"] = protect_configuration_id
    if message_feedback_enabled is not None:
        input_["message_feedback_enabled"] = message_feedback_enabled

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output