aws-sdk-connect 1.159.0

AWS SDK for Amazon Connect Service
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::update_user_notification_status::_update_user_notification_status_output::UpdateUserNotificationStatusOutputBuilder;

pub use crate::operation::update_user_notification_status::_update_user_notification_status_input::UpdateUserNotificationStatusInputBuilder;

impl crate::operation::update_user_notification_status::builders::UpdateUserNotificationStatusInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::update_user_notification_status::UpdateUserNotificationStatusOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::update_user_notification_status::UpdateUserNotificationStatusError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.update_user_notification_status();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `UpdateUserNotificationStatus`.
///
/// <p>Updates the status of a notification for a specific user, such as marking it as read or hidden. Users can only update notification status for notifications that have been sent to them. READ status deprioritizes the notification and greys it out, while HIDDEN status removes it from the notification widget.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct UpdateUserNotificationStatusFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::update_user_notification_status::builders::UpdateUserNotificationStatusInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::update_user_notification_status::UpdateUserNotificationStatusOutput,
        crate::operation::update_user_notification_status::UpdateUserNotificationStatusError,
    > for UpdateUserNotificationStatusFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::update_user_notification_status::UpdateUserNotificationStatusOutput,
            crate::operation::update_user_notification_status::UpdateUserNotificationStatusError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl UpdateUserNotificationStatusFluentBuilder {
    /// Creates a new `UpdateUserNotificationStatusFluentBuilder`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the UpdateUserNotificationStatus as a reference.
    pub fn as_input(&self) -> &crate::operation::update_user_notification_status::builders::UpdateUserNotificationStatusInputBuilder {
        &self.inner
    }
    /// Sends the request and returns the response.
    ///
    /// If an error occurs, an `SdkError` will be returned with additional details that
    /// can be matched against.
    ///
    /// By default, any retryable failures will be retried twice. Retry behavior
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
    /// set when configuring the client.
    pub async fn send(
        self,
    ) -> ::std::result::Result<
        crate::operation::update_user_notification_status::UpdateUserNotificationStatusOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::update_user_notification_status::UpdateUserNotificationStatusError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins = crate::operation::update_user_notification_status::UpdateUserNotificationStatus::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::update_user_notification_status::UpdateUserNotificationStatus::orchestrate(&runtime_plugins, input).await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::update_user_notification_status::UpdateUserNotificationStatusOutput,
        crate::operation::update_user_notification_status::UpdateUserNotificationStatusError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
        self.set_config_override(::std::option::Option::Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    /// <p>The identifier of the Amazon Connect instance. You can <a href="https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html">find the instance ID</a> in the Amazon Resource Name (ARN) of the instance.</p>
    pub fn instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.instance_id(input.into());
        self
    }
    /// <p>The identifier of the Amazon Connect instance. You can <a href="https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html">find the instance ID</a> in the Amazon Resource Name (ARN) of the instance.</p>
    pub fn set_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_instance_id(input);
        self
    }
    /// <p>The identifier of the Amazon Connect instance. You can <a href="https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html">find the instance ID</a> in the Amazon Resource Name (ARN) of the instance.</p>
    pub fn get_instance_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_instance_id()
    }
    /// <p>The unique identifier for the notification.</p>
    pub fn notification_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.notification_id(input.into());
        self
    }
    /// <p>The unique identifier for the notification.</p>
    pub fn set_notification_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_notification_id(input);
        self
    }
    /// <p>The unique identifier for the notification.</p>
    pub fn get_notification_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_notification_id()
    }
    /// <p>The identifier of the user whose notification status is being updated.</p>
    pub fn user_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.user_id(input.into());
        self
    }
    /// <p>The identifier of the user whose notification status is being updated.</p>
    pub fn set_user_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_user_id(input);
        self
    }
    /// <p>The identifier of the user whose notification status is being updated.</p>
    pub fn get_user_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_user_id()
    }
    /// <p>The new status for the notification. Valid values are READ, UNREAD, and HIDDEN.</p>
    pub fn status(mut self, input: crate::types::NotificationStatus) -> Self {
        self.inner = self.inner.status(input);
        self
    }
    /// <p>The new status for the notification. Valid values are READ, UNREAD, and HIDDEN.</p>
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::NotificationStatus>) -> Self {
        self.inner = self.inner.set_status(input);
        self
    }
    /// <p>The new status for the notification. Valid values are READ, UNREAD, and HIDDEN.</p>
    pub fn get_status(&self) -> &::std::option::Option<crate::types::NotificationStatus> {
        self.inner.get_status()
    }
    /// <p>The timestamp when the notification status was last modified. Used for cross-region replication and optimistic locking.</p>
    pub fn last_modified_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.inner = self.inner.last_modified_time(input);
        self
    }
    /// <p>The timestamp when the notification status was last modified. Used for cross-region replication and optimistic locking.</p>
    pub fn set_last_modified_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.inner = self.inner.set_last_modified_time(input);
        self
    }
    /// <p>The timestamp when the notification status was last modified. Used for cross-region replication and optimistic locking.</p>
    pub fn get_last_modified_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        self.inner.get_last_modified_time()
    }
    /// <p>The AWS Region where the notification status was last modified. Used for cross-region replication.</p>
    pub fn last_modified_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.last_modified_region(input.into());
        self
    }
    /// <p>The AWS Region where the notification status was last modified. Used for cross-region replication.</p>
    pub fn set_last_modified_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_last_modified_region(input);
        self
    }
    /// <p>The AWS Region where the notification status was last modified. Used for cross-region replication.</p>
    pub fn get_last_modified_region(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_last_modified_region()
    }
}