AWS SDK for C++

AWS SDK for C++ Version 1.11.606

Loading...
Searching...
No Matches
ChatRequest.h
1
6#pragma once
7#include <aws/qbusiness/QBusiness_EXPORTS.h>
8#include <aws/qbusiness/QBusinessRequest.h>
9#include <aws/qbusiness/model/ChatHandler.h>
10#include <aws/core/utils/event/EventStreamDecoder.h>
11#include <memory>
12#include <aws/core/utils/memory/stl/AWSString.h>
13#include <aws/core/utils/memory/stl/AWSVector.h>
14#include <aws/qbusiness/model/ChatInputStream.h>
15#include <utility>
16#include <aws/core/utils/UUID.h>
17
18namespace Aws
19{
20namespace Http
21{
22 class URI;
23} //namespace Http
24namespace QBusiness
25{
26namespace Model
27{
28
32 {
33 public:
34 AWS_QBUSINESS_API ChatRequest() = default;
35
36 // Service request name is the Operation name which will send this request out,
37 // each operation should has unique request name, so that we can get operation's name from this request.
38 // Note: this is not true for response, multiple operations may have the same response name,
39 // so we can not get operation's name from response.
40 inline virtual const char* GetServiceRequestName() const override { return "Chat"; }
41
42 inline virtual bool IsEventStreamRequest() const override { return true; }
43 inline virtual bool HasEventStreamResponse() const override { return true; }
44 // SerializePayload will not be invoked.
45 // This request is sent by encoding its data in event-streams which is sent as IOStream via GetBody()
46 AWS_QBUSINESS_API Aws::String SerializePayload() const override { return {}; }
47 AWS_QBUSINESS_API std::shared_ptr<Aws::IOStream> GetBody() const override;
48 AWS_QBUSINESS_API void AddQueryStringParameters(Aws::Http::URI& uri) const override;
49
54
58 inline ChatHandler& GetEventStreamHandler() { return m_handler; }
59
63 inline void SetEventStreamHandler(const ChatHandler& value) { m_handler = value; m_decoder.ResetEventStreamHandler(&m_handler); }
64
68 inline ChatRequest& WithEventStreamHandler(const ChatHandler& value) { SetEventStreamHandler(value); return *this; }
69
70
72
76 inline const Aws::String& GetApplicationId() const { return m_applicationId; }
77 inline bool ApplicationIdHasBeenSet() const { return m_applicationIdHasBeenSet; }
78 template<typename ApplicationIdT = Aws::String>
79 void SetApplicationId(ApplicationIdT&& value) { m_applicationIdHasBeenSet = true; m_applicationId = std::forward<ApplicationIdT>(value); }
80 template<typename ApplicationIdT = Aws::String>
81 ChatRequest& WithApplicationId(ApplicationIdT&& value) { SetApplicationId(std::forward<ApplicationIdT>(value)); return *this;}
83
85
88 inline const Aws::String& GetUserId() const { return m_userId; }
89 inline bool UserIdHasBeenSet() const { return m_userIdHasBeenSet; }
90 template<typename UserIdT = Aws::String>
91 void SetUserId(UserIdT&& value) { m_userIdHasBeenSet = true; m_userId = std::forward<UserIdT>(value); }
92 template<typename UserIdT = Aws::String>
93 ChatRequest& WithUserId(UserIdT&& value) { SetUserId(std::forward<UserIdT>(value)); return *this;}
95
97
100 inline const Aws::Vector<Aws::String>& GetUserGroups() const { return m_userGroups; }
101 inline bool UserGroupsHasBeenSet() const { return m_userGroupsHasBeenSet; }
102 template<typename UserGroupsT = Aws::Vector<Aws::String>>
103 void SetUserGroups(UserGroupsT&& value) { m_userGroupsHasBeenSet = true; m_userGroups = std::forward<UserGroupsT>(value); }
104 template<typename UserGroupsT = Aws::Vector<Aws::String>>
105 ChatRequest& WithUserGroups(UserGroupsT&& value) { SetUserGroups(std::forward<UserGroupsT>(value)); return *this;}
106 template<typename UserGroupsT = Aws::String>
107 ChatRequest& AddUserGroups(UserGroupsT&& value) { m_userGroupsHasBeenSet = true; m_userGroups.emplace_back(std::forward<UserGroupsT>(value)); return *this; }
109
111
114 inline const Aws::String& GetConversationId() const { return m_conversationId; }
115 inline bool ConversationIdHasBeenSet() const { return m_conversationIdHasBeenSet; }
116 template<typename ConversationIdT = Aws::String>
117 void SetConversationId(ConversationIdT&& value) { m_conversationIdHasBeenSet = true; m_conversationId = std::forward<ConversationIdT>(value); }
118 template<typename ConversationIdT = Aws::String>
119 ChatRequest& WithConversationId(ConversationIdT&& value) { SetConversationId(std::forward<ConversationIdT>(value)); return *this;}
121
123
127 inline const Aws::String& GetParentMessageId() const { return m_parentMessageId; }
128 inline bool ParentMessageIdHasBeenSet() const { return m_parentMessageIdHasBeenSet; }
129 template<typename ParentMessageIdT = Aws::String>
130 void SetParentMessageId(ParentMessageIdT&& value) { m_parentMessageIdHasBeenSet = true; m_parentMessageId = std::forward<ParentMessageIdT>(value); }
131 template<typename ParentMessageIdT = Aws::String>
132 ChatRequest& WithParentMessageId(ParentMessageIdT&& value) { SetParentMessageId(std::forward<ParentMessageIdT>(value)); return *this;}
134
136
139 inline const Aws::String& GetClientToken() const { return m_clientToken; }
140 inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
141 template<typename ClientTokenT = Aws::String>
142 void SetClientToken(ClientTokenT&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::forward<ClientTokenT>(value); }
143 template<typename ClientTokenT = Aws::String>
144 ChatRequest& WithClientToken(ClientTokenT&& value) { SetClientToken(std::forward<ClientTokenT>(value)); return *this;}
146
148
151 AWS_QBUSINESS_API std::shared_ptr<ChatInputStream> GetInputStream() const { return m_inputStream; }
152 AWS_QBUSINESS_API void SetInputStream(const std::shared_ptr<ChatInputStream>& value) { m_inputStreamHasBeenSet = true; m_inputStream = value; }
153 AWS_QBUSINESS_API ChatRequest& WithInputStream(const std::shared_ptr<ChatInputStream>& value) { SetInputStream(value); return *this;}
154
156 private:
157
158 Aws::String m_applicationId;
159 bool m_applicationIdHasBeenSet = false;
160
161 Aws::String m_userId;
162 bool m_userIdHasBeenSet = false;
163
164 Aws::Vector<Aws::String> m_userGroups;
165 bool m_userGroupsHasBeenSet = false;
166
167 Aws::String m_conversationId;
168 bool m_conversationIdHasBeenSet = false;
169
170 Aws::String m_parentMessageId;
171 bool m_parentMessageIdHasBeenSet = false;
172
174 bool m_clientTokenHasBeenSet = true;
175
176 std::shared_ptr<ChatInputStream> m_inputStream;
177 bool m_inputStreamHasBeenSet = false;
178 ChatHandler m_handler;
180
181 };
182
183} // namespace Model
184} // namespace QBusiness
185} // namespace Aws
ChatRequest & AddUserGroups(UserGroupsT &&value)
ChatRequest & WithEventStreamHandler(const ChatHandler &value)
Definition ChatRequest.h:68
ChatRequest & WithParentMessageId(ParentMessageIdT &&value)
const Aws::String & GetUserId() const
Definition ChatRequest.h:88
const Aws::Vector< Aws::String > & GetUserGroups() const
ChatRequest & WithApplicationId(ApplicationIdT &&value)
Definition ChatRequest.h:81
AWS_QBUSINESS_API std::shared_ptr< ChatInputStream > GetInputStream() const
void SetConversationId(ConversationIdT &&value)
AWS_QBUSINESS_API void SetInputStream(const std::shared_ptr< ChatInputStream > &value)
const Aws::String & GetConversationId() const
const Aws::String & GetParentMessageId() const
AWS_QBUSINESS_API std::shared_ptr< Aws::IOStream > GetBody() const override
void SetApplicationId(ApplicationIdT &&value)
Definition ChatRequest.h:79
const Aws::String & GetApplicationId() const
Definition ChatRequest.h:76
Aws::Utils::Event::EventStreamDecoder & GetEventStreamDecoder()
Definition ChatRequest.h:53
virtual bool IsEventStreamRequest() const override
Definition ChatRequest.h:42
ChatRequest & WithClientToken(ClientTokenT &&value)
AWS_QBUSINESS_API void AddQueryStringParameters(Aws::Http::URI &uri) const override
virtual bool HasEventStreamResponse() const override
Definition ChatRequest.h:43
virtual const char * GetServiceRequestName() const override
Definition ChatRequest.h:40
const Aws::String & GetClientToken() const
ChatRequest & WithUserGroups(UserGroupsT &&value)
AWS_QBUSINESS_API ChatRequest()=default
AWS_QBUSINESS_API ChatRequest & WithInputStream(const std::shared_ptr< ChatInputStream > &value)
void SetClientToken(ClientTokenT &&value)
void SetEventStreamHandler(const ChatHandler &value)
Definition ChatRequest.h:63
void SetParentMessageId(ParentMessageIdT &&value)
AWS_QBUSINESS_API Aws::String SerializePayload() const override
Definition ChatRequest.h:46
ChatRequest & WithConversationId(ConversationIdT &&value)
ChatRequest & WithUserId(UserIdT &&value)
Definition ChatRequest.h:93
void SetUserId(UserIdT &&value)
Definition ChatRequest.h:91
void SetUserGroups(UserGroupsT &&value)
void ResetEventStreamHandler(EventStreamHandler *handler)
static Aws::Utils::UUID PseudoRandomUUID()
std::shared_ptr< T > MakeShared(const char *allocationTag, ArgTypes &&... args)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector