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()
    }
}