1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/connect/Connect_EXPORTS.h>
8 #include <aws/connect/ConnectRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/connect/model/IntegrationType.h>
11 #include <aws/connect/model/SourceType.h>
12 #include <aws/core/utils/memory/stl/AWSMap.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Connect
18 {
19 namespace Model
20 {
21 
22   /**
23    */
24   class AWS_CONNECT_API CreateIntegrationAssociationRequest : public ConnectRequest
25   {
26   public:
27     CreateIntegrationAssociationRequest();
28 
29     // Service request name is the Operation name which will send this request out,
30     // each operation should has unique request name, so that we can get operation's name from this request.
31     // Note: this is not true for response, multiple operations may have the same response name,
32     // so we can not get operation's name from response.
GetServiceRequestName()33     inline virtual const char* GetServiceRequestName() const override { return "CreateIntegrationAssociation"; }
34 
35     Aws::String SerializePayload() const override;
36 
37 
38     /**
39      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
40      * the ARN of the instance.</p>
41      */
GetInstanceId()42     inline const Aws::String& GetInstanceId() const{ return m_instanceId; }
43 
44     /**
45      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
46      * the ARN of the instance.</p>
47      */
InstanceIdHasBeenSet()48     inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; }
49 
50     /**
51      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
52      * the ARN of the instance.</p>
53      */
SetInstanceId(const Aws::String & value)54     inline void SetInstanceId(const Aws::String& value) { m_instanceIdHasBeenSet = true; m_instanceId = value; }
55 
56     /**
57      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
58      * the ARN of the instance.</p>
59      */
SetInstanceId(Aws::String && value)60     inline void SetInstanceId(Aws::String&& value) { m_instanceIdHasBeenSet = true; m_instanceId = std::move(value); }
61 
62     /**
63      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
64      * the ARN of the instance.</p>
65      */
SetInstanceId(const char * value)66     inline void SetInstanceId(const char* value) { m_instanceIdHasBeenSet = true; m_instanceId.assign(value); }
67 
68     /**
69      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
70      * the ARN of the instance.</p>
71      */
WithInstanceId(const Aws::String & value)72     inline CreateIntegrationAssociationRequest& WithInstanceId(const Aws::String& value) { SetInstanceId(value); return *this;}
73 
74     /**
75      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
76      * the ARN of the instance.</p>
77      */
WithInstanceId(Aws::String && value)78     inline CreateIntegrationAssociationRequest& WithInstanceId(Aws::String&& value) { SetInstanceId(std::move(value)); return *this;}
79 
80     /**
81      * <p>The identifier of the Amazon Connect instance. You can find the instanceId in
82      * the ARN of the instance.</p>
83      */
WithInstanceId(const char * value)84     inline CreateIntegrationAssociationRequest& WithInstanceId(const char* value) { SetInstanceId(value); return *this;}
85 
86 
87     /**
88      * <p>The type of information to be ingested.</p>
89      */
GetIntegrationType()90     inline const IntegrationType& GetIntegrationType() const{ return m_integrationType; }
91 
92     /**
93      * <p>The type of information to be ingested.</p>
94      */
IntegrationTypeHasBeenSet()95     inline bool IntegrationTypeHasBeenSet() const { return m_integrationTypeHasBeenSet; }
96 
97     /**
98      * <p>The type of information to be ingested.</p>
99      */
SetIntegrationType(const IntegrationType & value)100     inline void SetIntegrationType(const IntegrationType& value) { m_integrationTypeHasBeenSet = true; m_integrationType = value; }
101 
102     /**
103      * <p>The type of information to be ingested.</p>
104      */
SetIntegrationType(IntegrationType && value)105     inline void SetIntegrationType(IntegrationType&& value) { m_integrationTypeHasBeenSet = true; m_integrationType = std::move(value); }
106 
107     /**
108      * <p>The type of information to be ingested.</p>
109      */
WithIntegrationType(const IntegrationType & value)110     inline CreateIntegrationAssociationRequest& WithIntegrationType(const IntegrationType& value) { SetIntegrationType(value); return *this;}
111 
112     /**
113      * <p>The type of information to be ingested.</p>
114      */
WithIntegrationType(IntegrationType && value)115     inline CreateIntegrationAssociationRequest& WithIntegrationType(IntegrationType&& value) { SetIntegrationType(std::move(value)); return *this;}
116 
117 
118     /**
119      * <p>The Amazon Resource Name (ARN) of the integration.</p>
120      */
GetIntegrationArn()121     inline const Aws::String& GetIntegrationArn() const{ return m_integrationArn; }
122 
123     /**
124      * <p>The Amazon Resource Name (ARN) of the integration.</p>
125      */
IntegrationArnHasBeenSet()126     inline bool IntegrationArnHasBeenSet() const { return m_integrationArnHasBeenSet; }
127 
128     /**
129      * <p>The Amazon Resource Name (ARN) of the integration.</p>
130      */
SetIntegrationArn(const Aws::String & value)131     inline void SetIntegrationArn(const Aws::String& value) { m_integrationArnHasBeenSet = true; m_integrationArn = value; }
132 
133     /**
134      * <p>The Amazon Resource Name (ARN) of the integration.</p>
135      */
SetIntegrationArn(Aws::String && value)136     inline void SetIntegrationArn(Aws::String&& value) { m_integrationArnHasBeenSet = true; m_integrationArn = std::move(value); }
137 
138     /**
139      * <p>The Amazon Resource Name (ARN) of the integration.</p>
140      */
SetIntegrationArn(const char * value)141     inline void SetIntegrationArn(const char* value) { m_integrationArnHasBeenSet = true; m_integrationArn.assign(value); }
142 
143     /**
144      * <p>The Amazon Resource Name (ARN) of the integration.</p>
145      */
WithIntegrationArn(const Aws::String & value)146     inline CreateIntegrationAssociationRequest& WithIntegrationArn(const Aws::String& value) { SetIntegrationArn(value); return *this;}
147 
148     /**
149      * <p>The Amazon Resource Name (ARN) of the integration.</p>
150      */
WithIntegrationArn(Aws::String && value)151     inline CreateIntegrationAssociationRequest& WithIntegrationArn(Aws::String&& value) { SetIntegrationArn(std::move(value)); return *this;}
152 
153     /**
154      * <p>The Amazon Resource Name (ARN) of the integration.</p>
155      */
WithIntegrationArn(const char * value)156     inline CreateIntegrationAssociationRequest& WithIntegrationArn(const char* value) { SetIntegrationArn(value); return *this;}
157 
158 
159     /**
160      * <p>The URL for the external application. This field is only required for the
161      * EVENT integration type.</p>
162      */
GetSourceApplicationUrl()163     inline const Aws::String& GetSourceApplicationUrl() const{ return m_sourceApplicationUrl; }
164 
165     /**
166      * <p>The URL for the external application. This field is only required for the
167      * EVENT integration type.</p>
168      */
SourceApplicationUrlHasBeenSet()169     inline bool SourceApplicationUrlHasBeenSet() const { return m_sourceApplicationUrlHasBeenSet; }
170 
171     /**
172      * <p>The URL for the external application. This field is only required for the
173      * EVENT integration type.</p>
174      */
SetSourceApplicationUrl(const Aws::String & value)175     inline void SetSourceApplicationUrl(const Aws::String& value) { m_sourceApplicationUrlHasBeenSet = true; m_sourceApplicationUrl = value; }
176 
177     /**
178      * <p>The URL for the external application. This field is only required for the
179      * EVENT integration type.</p>
180      */
SetSourceApplicationUrl(Aws::String && value)181     inline void SetSourceApplicationUrl(Aws::String&& value) { m_sourceApplicationUrlHasBeenSet = true; m_sourceApplicationUrl = std::move(value); }
182 
183     /**
184      * <p>The URL for the external application. This field is only required for the
185      * EVENT integration type.</p>
186      */
SetSourceApplicationUrl(const char * value)187     inline void SetSourceApplicationUrl(const char* value) { m_sourceApplicationUrlHasBeenSet = true; m_sourceApplicationUrl.assign(value); }
188 
189     /**
190      * <p>The URL for the external application. This field is only required for the
191      * EVENT integration type.</p>
192      */
WithSourceApplicationUrl(const Aws::String & value)193     inline CreateIntegrationAssociationRequest& WithSourceApplicationUrl(const Aws::String& value) { SetSourceApplicationUrl(value); return *this;}
194 
195     /**
196      * <p>The URL for the external application. This field is only required for the
197      * EVENT integration type.</p>
198      */
WithSourceApplicationUrl(Aws::String && value)199     inline CreateIntegrationAssociationRequest& WithSourceApplicationUrl(Aws::String&& value) { SetSourceApplicationUrl(std::move(value)); return *this;}
200 
201     /**
202      * <p>The URL for the external application. This field is only required for the
203      * EVENT integration type.</p>
204      */
WithSourceApplicationUrl(const char * value)205     inline CreateIntegrationAssociationRequest& WithSourceApplicationUrl(const char* value) { SetSourceApplicationUrl(value); return *this;}
206 
207 
208     /**
209      * <p>The name of the external application. This field is only required for the
210      * EVENT integration type.</p>
211      */
GetSourceApplicationName()212     inline const Aws::String& GetSourceApplicationName() const{ return m_sourceApplicationName; }
213 
214     /**
215      * <p>The name of the external application. This field is only required for the
216      * EVENT integration type.</p>
217      */
SourceApplicationNameHasBeenSet()218     inline bool SourceApplicationNameHasBeenSet() const { return m_sourceApplicationNameHasBeenSet; }
219 
220     /**
221      * <p>The name of the external application. This field is only required for the
222      * EVENT integration type.</p>
223      */
SetSourceApplicationName(const Aws::String & value)224     inline void SetSourceApplicationName(const Aws::String& value) { m_sourceApplicationNameHasBeenSet = true; m_sourceApplicationName = value; }
225 
226     /**
227      * <p>The name of the external application. This field is only required for the
228      * EVENT integration type.</p>
229      */
SetSourceApplicationName(Aws::String && value)230     inline void SetSourceApplicationName(Aws::String&& value) { m_sourceApplicationNameHasBeenSet = true; m_sourceApplicationName = std::move(value); }
231 
232     /**
233      * <p>The name of the external application. This field is only required for the
234      * EVENT integration type.</p>
235      */
SetSourceApplicationName(const char * value)236     inline void SetSourceApplicationName(const char* value) { m_sourceApplicationNameHasBeenSet = true; m_sourceApplicationName.assign(value); }
237 
238     /**
239      * <p>The name of the external application. This field is only required for the
240      * EVENT integration type.</p>
241      */
WithSourceApplicationName(const Aws::String & value)242     inline CreateIntegrationAssociationRequest& WithSourceApplicationName(const Aws::String& value) { SetSourceApplicationName(value); return *this;}
243 
244     /**
245      * <p>The name of the external application. This field is only required for the
246      * EVENT integration type.</p>
247      */
WithSourceApplicationName(Aws::String && value)248     inline CreateIntegrationAssociationRequest& WithSourceApplicationName(Aws::String&& value) { SetSourceApplicationName(std::move(value)); return *this;}
249 
250     /**
251      * <p>The name of the external application. This field is only required for the
252      * EVENT integration type.</p>
253      */
WithSourceApplicationName(const char * value)254     inline CreateIntegrationAssociationRequest& WithSourceApplicationName(const char* value) { SetSourceApplicationName(value); return *this;}
255 
256 
257     /**
258      * <p>The type of the data source. This field is only required for the EVENT
259      * integration type.</p>
260      */
GetSourceType()261     inline const SourceType& GetSourceType() const{ return m_sourceType; }
262 
263     /**
264      * <p>The type of the data source. This field is only required for the EVENT
265      * integration type.</p>
266      */
SourceTypeHasBeenSet()267     inline bool SourceTypeHasBeenSet() const { return m_sourceTypeHasBeenSet; }
268 
269     /**
270      * <p>The type of the data source. This field is only required for the EVENT
271      * integration type.</p>
272      */
SetSourceType(const SourceType & value)273     inline void SetSourceType(const SourceType& value) { m_sourceTypeHasBeenSet = true; m_sourceType = value; }
274 
275     /**
276      * <p>The type of the data source. This field is only required for the EVENT
277      * integration type.</p>
278      */
SetSourceType(SourceType && value)279     inline void SetSourceType(SourceType&& value) { m_sourceTypeHasBeenSet = true; m_sourceType = std::move(value); }
280 
281     /**
282      * <p>The type of the data source. This field is only required for the EVENT
283      * integration type.</p>
284      */
WithSourceType(const SourceType & value)285     inline CreateIntegrationAssociationRequest& WithSourceType(const SourceType& value) { SetSourceType(value); return *this;}
286 
287     /**
288      * <p>The type of the data source. This field is only required for the EVENT
289      * integration type.</p>
290      */
WithSourceType(SourceType && value)291     inline CreateIntegrationAssociationRequest& WithSourceType(SourceType&& value) { SetSourceType(std::move(value)); return *this;}
292 
293 
294     /**
295      * <p>One or more tags.</p>
296      */
GetTags()297     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
298 
299     /**
300      * <p>One or more tags.</p>
301      */
TagsHasBeenSet()302     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
303 
304     /**
305      * <p>One or more tags.</p>
306      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)307     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
308 
309     /**
310      * <p>One or more tags.</p>
311      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)312     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
313 
314     /**
315      * <p>One or more tags.</p>
316      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)317     inline CreateIntegrationAssociationRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
318 
319     /**
320      * <p>One or more tags.</p>
321      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)322     inline CreateIntegrationAssociationRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
323 
324     /**
325      * <p>One or more tags.</p>
326      */
AddTags(const Aws::String & key,const Aws::String & value)327     inline CreateIntegrationAssociationRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
328 
329     /**
330      * <p>One or more tags.</p>
331      */
AddTags(Aws::String && key,const Aws::String & value)332     inline CreateIntegrationAssociationRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
333 
334     /**
335      * <p>One or more tags.</p>
336      */
AddTags(const Aws::String & key,Aws::String && value)337     inline CreateIntegrationAssociationRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
338 
339     /**
340      * <p>One or more tags.</p>
341      */
AddTags(Aws::String && key,Aws::String && value)342     inline CreateIntegrationAssociationRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
343 
344     /**
345      * <p>One or more tags.</p>
346      */
AddTags(const char * key,Aws::String && value)347     inline CreateIntegrationAssociationRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
348 
349     /**
350      * <p>One or more tags.</p>
351      */
AddTags(Aws::String && key,const char * value)352     inline CreateIntegrationAssociationRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
353 
354     /**
355      * <p>One or more tags.</p>
356      */
AddTags(const char * key,const char * value)357     inline CreateIntegrationAssociationRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
358 
359   private:
360 
361     Aws::String m_instanceId;
362     bool m_instanceIdHasBeenSet;
363 
364     IntegrationType m_integrationType;
365     bool m_integrationTypeHasBeenSet;
366 
367     Aws::String m_integrationArn;
368     bool m_integrationArnHasBeenSet;
369 
370     Aws::String m_sourceApplicationUrl;
371     bool m_sourceApplicationUrlHasBeenSet;
372 
373     Aws::String m_sourceApplicationName;
374     bool m_sourceApplicationNameHasBeenSet;
375 
376     SourceType m_sourceType;
377     bool m_sourceTypeHasBeenSet;
378 
379     Aws::Map<Aws::String, Aws::String> m_tags;
380     bool m_tagsHasBeenSet;
381   };
382 
383 } // namespace Model
384 } // namespace Connect
385 } // namespace Aws
386