Skip to content

update_rcs_agent async

update_rcs_agent(
    rcs_agent_id: RcsAgentIdOrArn,
    *,
    config_overrides: Optional[AsyncPinpointSMSVoiceV2ClientConfig] = None,
    deletion_protection_enabled: Optional[bool] = None,
    opt_out_list_name: Optional[OptOutListNameOrArn] = None,
    self_managed_opt_outs_enabled: Optional[bool] = None,
    two_way_channel_arn: Optional[TwoWayChannelArn] = None,
    two_way_channel_role: Optional[IamRoleArn] = None,
    two_way_enabled: Optional[bool] = None,
    two_way_media_s3_bucket_name: Optional[TwoWayMediaS3BucketNameOrUnset] = None,
    two_way_media_s3_key_prefix: Optional[TwoWayMediaS3KeyPrefix] = None,
    two_way_media_s3_role: Optional[IamRoleArnOrUnset] = None,
    two_way_rcs_events_enabled: Optional[RcsEventTypeList] = None,
) -> UpdateRcsAgentResult

Updates the configuration of an existing RCS agent. You can update the opt-out list, deletion protection, two-way messaging settings, and self-managed opt-outs configuration.

Parameters:

  • rcs_agent_id (RcsAgentIdOrArn) –

    The unique identifier of the RCS agent to update. You can use either the RcsAgentId or RcsAgentArn.

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

    By default this is set to false. When set to true the RCS agent can't be deleted.

  • opt_out_list_name (Optional[OptOutListNameOrArn], default: None ) –

    The OptOutList to associate with the RCS agent. Valid values are either OptOutListName or OptOutListArn.

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

    By default this is set to false. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests.

  • two_way_channel_arn (Optional[TwoWayChannelArn], default: None ) –

    The Amazon Resource Name (ARN) of the two way channel.

  • two_way_channel_role (Optional[IamRoleArn], default: None ) –

    An optional IAM Role Arn for a service to assume, to be able to post inbound SMS messages.

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

    By default this is set to false. When set to true you can receive incoming text messages from your end recipients.

  • two_way_media_s3_bucket_name (Optional[TwoWayMediaS3BucketNameOrUnset], default: None ) –

    The name of the S3 bucket where inbound RCS media files are stored. Two-way messaging must be enabled on the agent. To remove the media configuration, pass the sentinel value UNSET_RCS_MEDIA_CONFIGURATION for both this field and TwoWayMediaS3Role.

  • two_way_media_s3_key_prefix (Optional[TwoWayMediaS3KeyPrefix], default: None ) –

    The key prefix used for inbound RCS media objects in the S3 bucket.

  • two_way_media_s3_role (Optional[IamRoleArnOrUnset], default: None ) –

    The ARN of the IAM role used to write inbound RCS media files to the S3 bucket. The role must have s3:PutObject permission on the bucket and a trust policy allowing sms-voice.amazonaws.com to assume it. To remove the media configuration, pass the sentinel value UNSET_RCS_MEDIA_CONFIGURATION for both this field and TwoWayMediaS3BucketName.

  • two_way_rcs_events_enabled (Optional[RcsEventTypeList], default: None ) –

    The list of RCS event types to enable for two-way messaging. Pass an empty list to disable all event types. The special value ALL enables all current and future event types and must be the sole element if used.

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.

  • 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/async_pinpoint_sms_voice_v2.py
async def update_rcs_agent(
    self,
    rcs_agent_id: "capo_pinpoint_sms_voice_v2.types.rcs_agent_id_or_arn.RcsAgentIdOrArn",
    *,
    config_overrides: Optional[AsyncPinpointSMSVoiceV2ClientConfig] = None,
    deletion_protection_enabled: Optional[bool] = None,
    opt_out_list_name: Optional[
        "capo_pinpoint_sms_voice_v2.types.opt_out_list_name_or_arn.OptOutListNameOrArn"
    ] = None,
    self_managed_opt_outs_enabled: Optional[bool] = None,
    two_way_channel_arn: Optional[
        "capo_pinpoint_sms_voice_v2.types.two_way_channel_arn.TwoWayChannelArn"
    ] = None,
    two_way_channel_role: Optional[
        "capo_pinpoint_sms_voice_v2.types.iam_role_arn.IamRoleArn"
    ] = None,
    two_way_enabled: Optional[bool] = None,
    two_way_media_s3_bucket_name: Optional[
        "capo_pinpoint_sms_voice_v2.types.two_way_media_s3_bucket_name_or_unset.TwoWayMediaS3BucketNameOrUnset"
    ] = None,
    two_way_media_s3_key_prefix: Optional[
        "capo_pinpoint_sms_voice_v2.types.two_way_media_s3_key_prefix.TwoWayMediaS3KeyPrefix"
    ] = None,
    two_way_media_s3_role: Optional[
        "capo_pinpoint_sms_voice_v2.types.iam_role_arn_or_unset.IamRoleArnOrUnset"
    ] = None,
    two_way_rcs_events_enabled: Optional[
        "capo_pinpoint_sms_voice_v2.types.rcs_event_type_list.RcsEventTypeList"
    ] = None,
) -> (
    "capo_pinpoint_sms_voice_v2.types.update_rcs_agent_result.UpdateRcsAgentResult"
):
    """<p>Updates the configuration of an existing RCS agent. You can update the opt-out list, deletion protection, two-way messaging settings, and self-managed opt-outs configuration.</p>

    Args:
        rcs_agent_id: <p>The unique identifier of the RCS agent to update. You can use either the RcsAgentId or RcsAgentArn.</p>
        deletion_protection_enabled: <p>By default this is set to false. When set to true the RCS agent can't be deleted.</p>
        opt_out_list_name: <p>The OptOutList to associate with the RCS agent. Valid values are either OptOutListName or OptOutListArn.</p>
        self_managed_opt_outs_enabled: <p>By default this is set to false. When set to true you're responsible for responding to HELP and STOP requests. You're also responsible for tracking and honoring opt-out requests.</p>
        two_way_channel_arn: <p>The Amazon Resource Name (ARN) of the two way channel.</p>
        two_way_channel_role: <p>An optional IAM Role Arn for a service to assume, to be able to post inbound SMS messages.</p>
        two_way_enabled: <p>By default this is set to false. When set to true you can receive incoming text messages from your end recipients.</p>
        two_way_media_s3_bucket_name: <p>The name of the S3 bucket where inbound RCS media files are stored. Two-way messaging must be enabled on the agent. To remove the media configuration, pass the sentinel value <code>UNSET_RCS_MEDIA_CONFIGURATION</code> for both this field and TwoWayMediaS3Role.</p>
        two_way_media_s3_key_prefix: <p>The key prefix used for inbound RCS media objects in the S3 bucket.</p>
        two_way_media_s3_role: <p>The ARN of the IAM role used to write inbound RCS media files to the S3 bucket. The role must have <code>s3:PutObject</code> permission on the bucket and a trust policy allowing <code>sms-voice.amazonaws.com</code> to assume it. To remove the media configuration, pass the sentinel value <code>UNSET_RCS_MEDIA_CONFIGURATION</code> for both this field and TwoWayMediaS3BucketName.</p>
        two_way_rcs_events_enabled: <p>The list of RCS event types to enable for two-way messaging. Pass an empty list to disable all event types. The special value <code>ALL</code> enables all current and future event types and must be the sole element if used.</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.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.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_pinpoint_sms_voice_v2.types.update_rcs_agent_request.UpdateRcsAgentRequest]",
    ) -> AsyncOperationResponse[
        "capo_pinpoint_sms_voice_v2.types.update_rcs_agent_result.UpdateRcsAgentResult"
    ]:
        import capo_pinpoint_sms_voice_v2._operations.pinpoint_sms_voice_v2.update_rcs_agent

        (
            output,
            http_response,
        ) = await capo_pinpoint_sms_voice_v2._operations.pinpoint_sms_voice_v2.update_rcs_agent.async_update_rcs_agent(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateRcsAgent")
    )
    input_: capo_pinpoint_sms_voice_v2.types.update_rcs_agent_request.UpdateRcsAgentRequest = {
        "rcs_agent_id": rcs_agent_id
    }
    if deletion_protection_enabled is not None:
        input_["deletion_protection_enabled"] = deletion_protection_enabled
    if opt_out_list_name is not None:
        input_["opt_out_list_name"] = opt_out_list_name
    if self_managed_opt_outs_enabled is not None:
        input_["self_managed_opt_outs_enabled"] = self_managed_opt_outs_enabled
    if two_way_channel_arn is not None:
        input_["two_way_channel_arn"] = two_way_channel_arn
    if two_way_channel_role is not None:
        input_["two_way_channel_role"] = two_way_channel_role
    if two_way_enabled is not None:
        input_["two_way_enabled"] = two_way_enabled
    if two_way_media_s3_bucket_name is not None:
        input_["two_way_media_s3_bucket_name"] = two_way_media_s3_bucket_name
    if two_way_media_s3_key_prefix is not None:
        input_["two_way_media_s3_key_prefix"] = two_way_media_s3_key_prefix
    if two_way_media_s3_role is not None:
        input_["two_way_media_s3_role"] = two_way_media_s3_role
    if two_way_rcs_events_enabled is not None:
        input_["two_way_rcs_events_enabled"] = two_way_rcs_events_enabled

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output