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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct StartChatContactOutput {
    /// <p>The identifier of this contact within the Amazon Connect instance.</p>
    pub contact_id: ::std::option::Option<::std::string::String>,
    /// <p>The identifier for a chat participant. The participantId for a chat participant is the same throughout the chat lifecycle.</p>
    pub participant_id: ::std::option::Option<::std::string::String>,
    /// <p>The token used by the chat participant to call <a href="https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html">CreateParticipantConnection</a>. The participant token is valid for the lifetime of a chat participant.</p>
    pub participant_token: ::std::option::Option<::std::string::String>,
    /// <p>The contactId from which a persistent chat session is started. This field is populated only for persistent chats.</p>
    pub continued_from_contact_id: ::std::option::Option<::std::string::String>,
    _request_id: Option<String>,
}
impl StartChatContactOutput {
    /// <p>The identifier of this contact within the Amazon Connect instance.</p>
    pub fn contact_id(&self) -> ::std::option::Option<&str> {
        self.contact_id.as_deref()
    }
    /// <p>The identifier for a chat participant. The participantId for a chat participant is the same throughout the chat lifecycle.</p>
    pub fn participant_id(&self) -> ::std::option::Option<&str> {
        self.participant_id.as_deref()
    }
    /// <p>The token used by the chat participant to call <a href="https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html">CreateParticipantConnection</a>. The participant token is valid for the lifetime of a chat participant.</p>
    pub fn participant_token(&self) -> ::std::option::Option<&str> {
        self.participant_token.as_deref()
    }
    /// <p>The contactId from which a persistent chat session is started. This field is populated only for persistent chats.</p>
    pub fn continued_from_contact_id(&self) -> ::std::option::Option<&str> {
        self.continued_from_contact_id.as_deref()
    }
}
impl ::aws_types::request_id::RequestId for StartChatContactOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl StartChatContactOutput {
    /// Creates a new builder-style object to manufacture [`StartChatContactOutput`](crate::operation::start_chat_contact::StartChatContactOutput).
    pub fn builder() -> crate::operation::start_chat_contact::builders::StartChatContactOutputBuilder {
        crate::operation::start_chat_contact::builders::StartChatContactOutputBuilder::default()
    }
}

/// A builder for [`StartChatContactOutput`](crate::operation::start_chat_contact::StartChatContactOutput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct StartChatContactOutputBuilder {
    pub(crate) contact_id: ::std::option::Option<::std::string::String>,
    pub(crate) participant_id: ::std::option::Option<::std::string::String>,
    pub(crate) participant_token: ::std::option::Option<::std::string::String>,
    pub(crate) continued_from_contact_id: ::std::option::Option<::std::string::String>,
    _request_id: Option<String>,
}
impl StartChatContactOutputBuilder {
    /// <p>The identifier of this contact within the Amazon Connect instance.</p>
    pub fn contact_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.contact_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier of this contact within the Amazon Connect instance.</p>
    pub fn set_contact_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.contact_id = input;
        self
    }
    /// <p>The identifier of this contact within the Amazon Connect instance.</p>
    pub fn get_contact_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.contact_id
    }
    /// <p>The identifier for a chat participant. The participantId for a chat participant is the same throughout the chat lifecycle.</p>
    pub fn participant_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.participant_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier for a chat participant. The participantId for a chat participant is the same throughout the chat lifecycle.</p>
    pub fn set_participant_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.participant_id = input;
        self
    }
    /// <p>The identifier for a chat participant. The participantId for a chat participant is the same throughout the chat lifecycle.</p>
    pub fn get_participant_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.participant_id
    }
    /// <p>The token used by the chat participant to call <a href="https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html">CreateParticipantConnection</a>. The participant token is valid for the lifetime of a chat participant.</p>
    pub fn participant_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.participant_token = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The token used by the chat participant to call <a href="https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html">CreateParticipantConnection</a>. The participant token is valid for the lifetime of a chat participant.</p>
    pub fn set_participant_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.participant_token = input;
        self
    }
    /// <p>The token used by the chat participant to call <a href="https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html">CreateParticipantConnection</a>. The participant token is valid for the lifetime of a chat participant.</p>
    pub fn get_participant_token(&self) -> &::std::option::Option<::std::string::String> {
        &self.participant_token
    }
    /// <p>The contactId from which a persistent chat session is started. This field is populated only for persistent chats.</p>
    pub fn continued_from_contact_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.continued_from_contact_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The contactId from which a persistent chat session is started. This field is populated only for persistent chats.</p>
    pub fn set_continued_from_contact_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.continued_from_contact_id = input;
        self
    }
    /// <p>The contactId from which a persistent chat session is started. This field is populated only for persistent chats.</p>
    pub fn get_continued_from_contact_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.continued_from_contact_id
    }
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
        self._request_id = Some(request_id.into());
        self
    }

    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
        self._request_id = request_id;
        self
    }
    /// Consumes the builder and constructs a [`StartChatContactOutput`](crate::operation::start_chat_contact::StartChatContactOutput).
    pub fn build(self) -> crate::operation::start_chat_contact::StartChatContactOutput {
        crate::operation::start_chat_contact::StartChatContactOutput {
            contact_id: self.contact_id,
            participant_id: self.participant_id,
            participant_token: self.participant_token,
            continued_from_contact_id: self.continued_from_contact_id,
            _request_id: self._request_id,
        }
    }
}