aws_sdk_connect/operation/send_chat_integration_event/builders.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::send_chat_integration_event::_send_chat_integration_event_output::SendChatIntegrationEventOutputBuilder;
pub use crate::operation::send_chat_integration_event::_send_chat_integration_event_input::SendChatIntegrationEventInputBuilder;
impl crate::operation::send_chat_integration_event::builders::SendChatIntegrationEventInputBuilder {
/// Sends a request with this input using the given client.
pub async fn send_with(
self,
client: &crate::Client,
) -> ::std::result::Result<
crate::operation::send_chat_integration_event::SendChatIntegrationEventOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::send_chat_integration_event::SendChatIntegrationEventError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let mut fluent_builder = client.send_chat_integration_event();
fluent_builder.inner = self;
fluent_builder.send().await
}
}
/// Fluent builder constructing a request to `SendChatIntegrationEvent`.
///
/// <p>Processes chat integration events from Amazon Web Services or external integrations to Amazon Connect. A chat integration event includes:</p>
/// <ul>
/// <li>
/// <p>SourceId, DestinationId, and Subtype: a set of identifiers, uniquely representing a chat</p></li>
/// <li>
/// <p>ChatEvent: details of the chat action to perform such as sending a message, event, or disconnecting from a chat</p></li>
/// </ul>
/// <p>When a chat integration event is sent with chat identifiers that do not map to an active chat contact, a new chat contact is also created before handling chat action.</p>
/// <p>Access to this API is currently restricted to Amazon Web Services End User Messaging for supporting SMS integration.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct SendChatIntegrationEventFluentBuilder {
handle: ::std::sync::Arc<crate::client::Handle>,
inner: crate::operation::send_chat_integration_event::builders::SendChatIntegrationEventInputBuilder,
config_override: ::std::option::Option<crate::config::Builder>,
}
impl
crate::client::customize::internal::CustomizableSend<
crate::operation::send_chat_integration_event::SendChatIntegrationEventOutput,
crate::operation::send_chat_integration_event::SendChatIntegrationEventError,
> for SendChatIntegrationEventFluentBuilder
{
fn send(
self,
config_override: crate::config::Builder,
) -> crate::client::customize::internal::BoxFuture<
crate::client::customize::internal::SendResult<
crate::operation::send_chat_integration_event::SendChatIntegrationEventOutput,
crate::operation::send_chat_integration_event::SendChatIntegrationEventError,
>,
> {
::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
}
}
impl SendChatIntegrationEventFluentBuilder {
/// Creates a new `SendChatIntegrationEventFluentBuilder`.
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 SendChatIntegrationEvent as a reference.
pub fn as_input(&self) -> &crate::operation::send_chat_integration_event::builders::SendChatIntegrationEventInputBuilder {
&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::send_chat_integration_event::SendChatIntegrationEventOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::send_chat_integration_event::SendChatIntegrationEventError,
::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::send_chat_integration_event::SendChatIntegrationEvent::operation_runtime_plugins(
self.handle.runtime_plugins.clone(),
&self.handle.conf,
self.config_override,
);
crate::operation::send_chat_integration_event::SendChatIntegrationEvent::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::send_chat_integration_event::SendChatIntegrationEventOutput,
crate::operation::send_chat_integration_event::SendChatIntegrationEventError,
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>External identifier of chat customer participant, used in part to uniquely identify a chat. For SMS, this is the E164 phone number of the chat customer participant.</p>
pub fn source_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.source_id(input.into());
self
}
/// <p>External identifier of chat customer participant, used in part to uniquely identify a chat. For SMS, this is the E164 phone number of the chat customer participant.</p>
pub fn set_source_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_source_id(input);
self
}
/// <p>External identifier of chat customer participant, used in part to uniquely identify a chat. For SMS, this is the E164 phone number of the chat customer participant.</p>
pub fn get_source_id(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_source_id()
}
/// <p>Chat system identifier, used in part to uniquely identify chat. This is associated with the Amazon Connect instance and flow to be used to start chats. For Server Migration Service, this is the phone number destination of inbound Server Migration Service messages represented by an Amazon Web Services End User Messaging phone number ARN.</p>
pub fn destination_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.destination_id(input.into());
self
}
/// <p>Chat system identifier, used in part to uniquely identify chat. This is associated with the Amazon Connect instance and flow to be used to start chats. For Server Migration Service, this is the phone number destination of inbound Server Migration Service messages represented by an Amazon Web Services End User Messaging phone number ARN.</p>
pub fn set_destination_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_destination_id(input);
self
}
/// <p>Chat system identifier, used in part to uniquely identify chat. This is associated with the Amazon Connect instance and flow to be used to start chats. For Server Migration Service, this is the phone number destination of inbound Server Migration Service messages represented by an Amazon Web Services End User Messaging phone number ARN.</p>
pub fn get_destination_id(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_destination_id()
}
/// <p>Classification of a channel. This is used in part to uniquely identify chat.</p>
/// <p>Valid value: <code>\["connect:sms", connect:"WhatsApp"\]</code></p>
pub fn subtype(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.subtype(input.into());
self
}
/// <p>Classification of a channel. This is used in part to uniquely identify chat.</p>
/// <p>Valid value: <code>\["connect:sms", connect:"WhatsApp"\]</code></p>
pub fn set_subtype(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_subtype(input);
self
}
/// <p>Classification of a channel. This is used in part to uniquely identify chat.</p>
/// <p>Valid value: <code>\["connect:sms", connect:"WhatsApp"\]</code></p>
pub fn get_subtype(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_subtype()
}
/// <p>Chat integration event payload</p>
pub fn event(mut self, input: crate::types::ChatEvent) -> Self {
self.inner = self.inner.event(input);
self
}
/// <p>Chat integration event payload</p>
pub fn set_event(mut self, input: ::std::option::Option<crate::types::ChatEvent>) -> Self {
self.inner = self.inner.set_event(input);
self
}
/// <p>Chat integration event payload</p>
pub fn get_event(&self) -> &::std::option::Option<crate::types::ChatEvent> {
self.inner.get_event()
}
/// <p>Contact properties to apply when starting a new chat. If the integration event is handled with an existing chat, this is ignored.</p>
pub fn new_session_details(mut self, input: crate::types::NewSessionDetails) -> Self {
self.inner = self.inner.new_session_details(input);
self
}
/// <p>Contact properties to apply when starting a new chat. If the integration event is handled with an existing chat, this is ignored.</p>
pub fn set_new_session_details(mut self, input: ::std::option::Option<crate::types::NewSessionDetails>) -> Self {
self.inner = self.inner.set_new_session_details(input);
self
}
/// <p>Contact properties to apply when starting a new chat. If the integration event is handled with an existing chat, this is ignored.</p>
pub fn get_new_session_details(&self) -> &::std::option::Option<crate::types::NewSessionDetails> {
self.inner.get_new_session_details()
}
}