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/transcribe/TranscribeService_EXPORTS.h>
8 #include <aws/transcribe/TranscribeServiceRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/transcribe/model/Media.h>
11 #include <aws/transcribe/model/CallAnalyticsJobSettings.h>
12 #include <aws/core/utils/memory/stl/AWSVector.h>
13 #include <aws/transcribe/model/ChannelDefinition.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace TranscribeService
19 {
20 namespace Model
21 {
22 
23   /**
24    */
25   class AWS_TRANSCRIBESERVICE_API StartCallAnalyticsJobRequest : public TranscribeServiceRequest
26   {
27   public:
28     StartCallAnalyticsJobRequest();
29 
30     // Service request name is the Operation name which will send this request out,
31     // each operation should has unique request name, so that we can get operation's name from this request.
32     // Note: this is not true for response, multiple operations may have the same response name,
33     // so we can not get operation's name from response.
GetServiceRequestName()34     inline virtual const char* GetServiceRequestName() const override { return "StartCallAnalyticsJob"; }
35 
36     Aws::String SerializePayload() const override;
37 
38     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
39 
40 
41     /**
42      * <p>The name of the call analytics job. You can't use the string "." or ".." by
43      * themselves as the job name. The name must also be unique within an Amazon Web
44      * Services account. If you try to create a call analytics job with the same name
45      * as a previous call analytics job, you get a <code>ConflictException</code>
46      * error.</p>
47      */
GetCallAnalyticsJobName()48     inline const Aws::String& GetCallAnalyticsJobName() const{ return m_callAnalyticsJobName; }
49 
50     /**
51      * <p>The name of the call analytics job. You can't use the string "." or ".." by
52      * themselves as the job name. The name must also be unique within an Amazon Web
53      * Services account. If you try to create a call analytics job with the same name
54      * as a previous call analytics job, you get a <code>ConflictException</code>
55      * error.</p>
56      */
CallAnalyticsJobNameHasBeenSet()57     inline bool CallAnalyticsJobNameHasBeenSet() const { return m_callAnalyticsJobNameHasBeenSet; }
58 
59     /**
60      * <p>The name of the call analytics job. You can't use the string "." or ".." by
61      * themselves as the job name. The name must also be unique within an Amazon Web
62      * Services account. If you try to create a call analytics job with the same name
63      * as a previous call analytics job, you get a <code>ConflictException</code>
64      * error.</p>
65      */
SetCallAnalyticsJobName(const Aws::String & value)66     inline void SetCallAnalyticsJobName(const Aws::String& value) { m_callAnalyticsJobNameHasBeenSet = true; m_callAnalyticsJobName = value; }
67 
68     /**
69      * <p>The name of the call analytics job. You can't use the string "." or ".." by
70      * themselves as the job name. The name must also be unique within an Amazon Web
71      * Services account. If you try to create a call analytics job with the same name
72      * as a previous call analytics job, you get a <code>ConflictException</code>
73      * error.</p>
74      */
SetCallAnalyticsJobName(Aws::String && value)75     inline void SetCallAnalyticsJobName(Aws::String&& value) { m_callAnalyticsJobNameHasBeenSet = true; m_callAnalyticsJobName = std::move(value); }
76 
77     /**
78      * <p>The name of the call analytics job. You can't use the string "." or ".." by
79      * themselves as the job name. The name must also be unique within an Amazon Web
80      * Services account. If you try to create a call analytics job with the same name
81      * as a previous call analytics job, you get a <code>ConflictException</code>
82      * error.</p>
83      */
SetCallAnalyticsJobName(const char * value)84     inline void SetCallAnalyticsJobName(const char* value) { m_callAnalyticsJobNameHasBeenSet = true; m_callAnalyticsJobName.assign(value); }
85 
86     /**
87      * <p>The name of the call analytics job. You can't use the string "." or ".." by
88      * themselves as the job name. The name must also be unique within an Amazon Web
89      * Services account. If you try to create a call analytics job with the same name
90      * as a previous call analytics job, you get a <code>ConflictException</code>
91      * error.</p>
92      */
WithCallAnalyticsJobName(const Aws::String & value)93     inline StartCallAnalyticsJobRequest& WithCallAnalyticsJobName(const Aws::String& value) { SetCallAnalyticsJobName(value); return *this;}
94 
95     /**
96      * <p>The name of the call analytics job. You can't use the string "." or ".." by
97      * themselves as the job name. The name must also be unique within an Amazon Web
98      * Services account. If you try to create a call analytics job with the same name
99      * as a previous call analytics job, you get a <code>ConflictException</code>
100      * error.</p>
101      */
WithCallAnalyticsJobName(Aws::String && value)102     inline StartCallAnalyticsJobRequest& WithCallAnalyticsJobName(Aws::String&& value) { SetCallAnalyticsJobName(std::move(value)); return *this;}
103 
104     /**
105      * <p>The name of the call analytics job. You can't use the string "." or ".." by
106      * themselves as the job name. The name must also be unique within an Amazon Web
107      * Services account. If you try to create a call analytics job with the same name
108      * as a previous call analytics job, you get a <code>ConflictException</code>
109      * error.</p>
110      */
WithCallAnalyticsJobName(const char * value)111     inline StartCallAnalyticsJobRequest& WithCallAnalyticsJobName(const char* value) { SetCallAnalyticsJobName(value); return *this;}
112 
113 
114 
GetMedia()115     inline const Media& GetMedia() const{ return m_media; }
116 
117 
MediaHasBeenSet()118     inline bool MediaHasBeenSet() const { return m_mediaHasBeenSet; }
119 
120 
SetMedia(const Media & value)121     inline void SetMedia(const Media& value) { m_mediaHasBeenSet = true; m_media = value; }
122 
123 
SetMedia(Media && value)124     inline void SetMedia(Media&& value) { m_mediaHasBeenSet = true; m_media = std::move(value); }
125 
126 
WithMedia(const Media & value)127     inline StartCallAnalyticsJobRequest& WithMedia(const Media& value) { SetMedia(value); return *this;}
128 
129 
WithMedia(Media && value)130     inline StartCallAnalyticsJobRequest& WithMedia(Media&& value) { SetMedia(std::move(value)); return *this;}
131 
132 
133     /**
134      * <p>The Amazon S3 location where the output of the call analytics job is stored.
135      * You can provide the following location types to store the output of call
136      * analytics job:</p> <ul> <li> <p>s3://DOC-EXAMPLE-BUCKET1</p> <p> If you specify
137      * a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file
138      * at the root level of the bucket.</p> </li> <li>
139      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/</p> <p>f you specify a path, Amazon
140      * Transcribe saves the output of the analytics job as
141      * s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json</p> <p>If you
142      * specify a folder, you must provide a trailing slash.</p> </li> <li>
143      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/filename.json</p> <p> If you provide a path
144      * that has the filename specified, Amazon Transcribe saves the output of the
145      * analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json</p> </li> </ul>
146      * <p>You can specify an Amazon Web Services Key Management Service (KMS) key to
147      * encrypt the output of our analytics job using the
148      * <code>OutputEncryptionKMSKeyId</code> parameter. If you don't specify a KMS key,
149      * Amazon Transcribe uses the default Amazon S3 key for server-side encryption of
150      * the analytics job output that is placed in your S3 bucket.</p>
151      */
GetOutputLocation()152     inline const Aws::String& GetOutputLocation() const{ return m_outputLocation; }
153 
154     /**
155      * <p>The Amazon S3 location where the output of the call analytics job is stored.
156      * You can provide the following location types to store the output of call
157      * analytics job:</p> <ul> <li> <p>s3://DOC-EXAMPLE-BUCKET1</p> <p> If you specify
158      * a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file
159      * at the root level of the bucket.</p> </li> <li>
160      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/</p> <p>f you specify a path, Amazon
161      * Transcribe saves the output of the analytics job as
162      * s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json</p> <p>If you
163      * specify a folder, you must provide a trailing slash.</p> </li> <li>
164      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/filename.json</p> <p> If you provide a path
165      * that has the filename specified, Amazon Transcribe saves the output of the
166      * analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json</p> </li> </ul>
167      * <p>You can specify an Amazon Web Services Key Management Service (KMS) key to
168      * encrypt the output of our analytics job using the
169      * <code>OutputEncryptionKMSKeyId</code> parameter. If you don't specify a KMS key,
170      * Amazon Transcribe uses the default Amazon S3 key for server-side encryption of
171      * the analytics job output that is placed in your S3 bucket.</p>
172      */
OutputLocationHasBeenSet()173     inline bool OutputLocationHasBeenSet() const { return m_outputLocationHasBeenSet; }
174 
175     /**
176      * <p>The Amazon S3 location where the output of the call analytics job is stored.
177      * You can provide the following location types to store the output of call
178      * analytics job:</p> <ul> <li> <p>s3://DOC-EXAMPLE-BUCKET1</p> <p> If you specify
179      * a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file
180      * at the root level of the bucket.</p> </li> <li>
181      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/</p> <p>f you specify a path, Amazon
182      * Transcribe saves the output of the analytics job as
183      * s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json</p> <p>If you
184      * specify a folder, you must provide a trailing slash.</p> </li> <li>
185      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/filename.json</p> <p> If you provide a path
186      * that has the filename specified, Amazon Transcribe saves the output of the
187      * analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json</p> </li> </ul>
188      * <p>You can specify an Amazon Web Services Key Management Service (KMS) key to
189      * encrypt the output of our analytics job using the
190      * <code>OutputEncryptionKMSKeyId</code> parameter. If you don't specify a KMS key,
191      * Amazon Transcribe uses the default Amazon S3 key for server-side encryption of
192      * the analytics job output that is placed in your S3 bucket.</p>
193      */
SetOutputLocation(const Aws::String & value)194     inline void SetOutputLocation(const Aws::String& value) { m_outputLocationHasBeenSet = true; m_outputLocation = value; }
195 
196     /**
197      * <p>The Amazon S3 location where the output of the call analytics job is stored.
198      * You can provide the following location types to store the output of call
199      * analytics job:</p> <ul> <li> <p>s3://DOC-EXAMPLE-BUCKET1</p> <p> If you specify
200      * a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file
201      * at the root level of the bucket.</p> </li> <li>
202      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/</p> <p>f you specify a path, Amazon
203      * Transcribe saves the output of the analytics job as
204      * s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json</p> <p>If you
205      * specify a folder, you must provide a trailing slash.</p> </li> <li>
206      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/filename.json</p> <p> If you provide a path
207      * that has the filename specified, Amazon Transcribe saves the output of the
208      * analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json</p> </li> </ul>
209      * <p>You can specify an Amazon Web Services Key Management Service (KMS) key to
210      * encrypt the output of our analytics job using the
211      * <code>OutputEncryptionKMSKeyId</code> parameter. If you don't specify a KMS key,
212      * Amazon Transcribe uses the default Amazon S3 key for server-side encryption of
213      * the analytics job output that is placed in your S3 bucket.</p>
214      */
SetOutputLocation(Aws::String && value)215     inline void SetOutputLocation(Aws::String&& value) { m_outputLocationHasBeenSet = true; m_outputLocation = std::move(value); }
216 
217     /**
218      * <p>The Amazon S3 location where the output of the call analytics job is stored.
219      * You can provide the following location types to store the output of call
220      * analytics job:</p> <ul> <li> <p>s3://DOC-EXAMPLE-BUCKET1</p> <p> If you specify
221      * a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file
222      * at the root level of the bucket.</p> </li> <li>
223      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/</p> <p>f you specify a path, Amazon
224      * Transcribe saves the output of the analytics job as
225      * s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json</p> <p>If you
226      * specify a folder, you must provide a trailing slash.</p> </li> <li>
227      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/filename.json</p> <p> If you provide a path
228      * that has the filename specified, Amazon Transcribe saves the output of the
229      * analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json</p> </li> </ul>
230      * <p>You can specify an Amazon Web Services Key Management Service (KMS) key to
231      * encrypt the output of our analytics job using the
232      * <code>OutputEncryptionKMSKeyId</code> parameter. If you don't specify a KMS key,
233      * Amazon Transcribe uses the default Amazon S3 key for server-side encryption of
234      * the analytics job output that is placed in your S3 bucket.</p>
235      */
SetOutputLocation(const char * value)236     inline void SetOutputLocation(const char* value) { m_outputLocationHasBeenSet = true; m_outputLocation.assign(value); }
237 
238     /**
239      * <p>The Amazon S3 location where the output of the call analytics job is stored.
240      * You can provide the following location types to store the output of call
241      * analytics job:</p> <ul> <li> <p>s3://DOC-EXAMPLE-BUCKET1</p> <p> If you specify
242      * a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file
243      * at the root level of the bucket.</p> </li> <li>
244      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/</p> <p>f you specify a path, Amazon
245      * Transcribe saves the output of the analytics job as
246      * s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json</p> <p>If you
247      * specify a folder, you must provide a trailing slash.</p> </li> <li>
248      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/filename.json</p> <p> If you provide a path
249      * that has the filename specified, Amazon Transcribe saves the output of the
250      * analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json</p> </li> </ul>
251      * <p>You can specify an Amazon Web Services Key Management Service (KMS) key to
252      * encrypt the output of our analytics job using the
253      * <code>OutputEncryptionKMSKeyId</code> parameter. If you don't specify a KMS key,
254      * Amazon Transcribe uses the default Amazon S3 key for server-side encryption of
255      * the analytics job output that is placed in your S3 bucket.</p>
256      */
WithOutputLocation(const Aws::String & value)257     inline StartCallAnalyticsJobRequest& WithOutputLocation(const Aws::String& value) { SetOutputLocation(value); return *this;}
258 
259     /**
260      * <p>The Amazon S3 location where the output of the call analytics job is stored.
261      * You can provide the following location types to store the output of call
262      * analytics job:</p> <ul> <li> <p>s3://DOC-EXAMPLE-BUCKET1</p> <p> If you specify
263      * a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file
264      * at the root level of the bucket.</p> </li> <li>
265      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/</p> <p>f you specify a path, Amazon
266      * Transcribe saves the output of the analytics job as
267      * s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json</p> <p>If you
268      * specify a folder, you must provide a trailing slash.</p> </li> <li>
269      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/filename.json</p> <p> If you provide a path
270      * that has the filename specified, Amazon Transcribe saves the output of the
271      * analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json</p> </li> </ul>
272      * <p>You can specify an Amazon Web Services Key Management Service (KMS) key to
273      * encrypt the output of our analytics job using the
274      * <code>OutputEncryptionKMSKeyId</code> parameter. If you don't specify a KMS key,
275      * Amazon Transcribe uses the default Amazon S3 key for server-side encryption of
276      * the analytics job output that is placed in your S3 bucket.</p>
277      */
WithOutputLocation(Aws::String && value)278     inline StartCallAnalyticsJobRequest& WithOutputLocation(Aws::String&& value) { SetOutputLocation(std::move(value)); return *this;}
279 
280     /**
281      * <p>The Amazon S3 location where the output of the call analytics job is stored.
282      * You can provide the following location types to store the output of call
283      * analytics job:</p> <ul> <li> <p>s3://DOC-EXAMPLE-BUCKET1</p> <p> If you specify
284      * a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file
285      * at the root level of the bucket.</p> </li> <li>
286      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/</p> <p>f you specify a path, Amazon
287      * Transcribe saves the output of the analytics job as
288      * s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json</p> <p>If you
289      * specify a folder, you must provide a trailing slash.</p> </li> <li>
290      * <p>s3://DOC-EXAMPLE-BUCKET1/folder/filename.json</p> <p> If you provide a path
291      * that has the filename specified, Amazon Transcribe saves the output of the
292      * analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json</p> </li> </ul>
293      * <p>You can specify an Amazon Web Services Key Management Service (KMS) key to
294      * encrypt the output of our analytics job using the
295      * <code>OutputEncryptionKMSKeyId</code> parameter. If you don't specify a KMS key,
296      * Amazon Transcribe uses the default Amazon S3 key for server-side encryption of
297      * the analytics job output that is placed in your S3 bucket.</p>
298      */
WithOutputLocation(const char * value)299     inline StartCallAnalyticsJobRequest& WithOutputLocation(const char* value) { SetOutputLocation(value); return *this;}
300 
301 
302     /**
303      * <p>The Amazon Resource Name (ARN) of the Amazon Web Services Key Management
304      * Service key used to encrypt the output of the call analytics job. The user
305      * calling the operation must have permission to use the specified KMS key.</p>
306      * <p>You use either of the following to identify an Amazon Web Services KMS key in
307      * the current account:</p> <ul> <li> <p>KMS Key ID:
308      * "1234abcd-12ab-34cd-56ef-1234567890ab"</p> </li> <li> <p>KMS Key Alias:
309      * "alias/ExampleAlias"</p> </li> </ul> <p> You can use either of the following to
310      * identify a KMS key in the current account or another account:</p> <ul> <li>
311      * <p>Amazon Resource Name (ARN) of a KMS key in the current account or another
312      * account: "arn:aws:kms:region:account
313      * ID:key/1234abcd-12ab-34cd-56ef1234567890ab"</p> </li> <li> <p>ARN of a KMS Key
314      * Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias"</p> </li> </ul> <p>If
315      * you don't specify an encryption key, the output of the call analytics job is
316      * encrypted with the default Amazon S3 key (SSE-S3).</p> <p>If you specify a KMS
317      * key to encrypt your output, you must also specify an output location in the
318      * <code>OutputLocation</code> parameter. </p>
319      */
GetOutputEncryptionKMSKeyId()320     inline const Aws::String& GetOutputEncryptionKMSKeyId() const{ return m_outputEncryptionKMSKeyId; }
321 
322     /**
323      * <p>The Amazon Resource Name (ARN) of the Amazon Web Services Key Management
324      * Service key used to encrypt the output of the call analytics job. The user
325      * calling the operation must have permission to use the specified KMS key.</p>
326      * <p>You use either of the following to identify an Amazon Web Services KMS key in
327      * the current account:</p> <ul> <li> <p>KMS Key ID:
328      * "1234abcd-12ab-34cd-56ef-1234567890ab"</p> </li> <li> <p>KMS Key Alias:
329      * "alias/ExampleAlias"</p> </li> </ul> <p> You can use either of the following to
330      * identify a KMS key in the current account or another account:</p> <ul> <li>
331      * <p>Amazon Resource Name (ARN) of a KMS key in the current account or another
332      * account: "arn:aws:kms:region:account
333      * ID:key/1234abcd-12ab-34cd-56ef1234567890ab"</p> </li> <li> <p>ARN of a KMS Key
334      * Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias"</p> </li> </ul> <p>If
335      * you don't specify an encryption key, the output of the call analytics job is
336      * encrypted with the default Amazon S3 key (SSE-S3).</p> <p>If you specify a KMS
337      * key to encrypt your output, you must also specify an output location in the
338      * <code>OutputLocation</code> parameter. </p>
339      */
OutputEncryptionKMSKeyIdHasBeenSet()340     inline bool OutputEncryptionKMSKeyIdHasBeenSet() const { return m_outputEncryptionKMSKeyIdHasBeenSet; }
341 
342     /**
343      * <p>The Amazon Resource Name (ARN) of the Amazon Web Services Key Management
344      * Service key used to encrypt the output of the call analytics job. The user
345      * calling the operation must have permission to use the specified KMS key.</p>
346      * <p>You use either of the following to identify an Amazon Web Services KMS key in
347      * the current account:</p> <ul> <li> <p>KMS Key ID:
348      * "1234abcd-12ab-34cd-56ef-1234567890ab"</p> </li> <li> <p>KMS Key Alias:
349      * "alias/ExampleAlias"</p> </li> </ul> <p> You can use either of the following to
350      * identify a KMS key in the current account or another account:</p> <ul> <li>
351      * <p>Amazon Resource Name (ARN) of a KMS key in the current account or another
352      * account: "arn:aws:kms:region:account
353      * ID:key/1234abcd-12ab-34cd-56ef1234567890ab"</p> </li> <li> <p>ARN of a KMS Key
354      * Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias"</p> </li> </ul> <p>If
355      * you don't specify an encryption key, the output of the call analytics job is
356      * encrypted with the default Amazon S3 key (SSE-S3).</p> <p>If you specify a KMS
357      * key to encrypt your output, you must also specify an output location in the
358      * <code>OutputLocation</code> parameter. </p>
359      */
SetOutputEncryptionKMSKeyId(const Aws::String & value)360     inline void SetOutputEncryptionKMSKeyId(const Aws::String& value) { m_outputEncryptionKMSKeyIdHasBeenSet = true; m_outputEncryptionKMSKeyId = value; }
361 
362     /**
363      * <p>The Amazon Resource Name (ARN) of the Amazon Web Services Key Management
364      * Service key used to encrypt the output of the call analytics job. The user
365      * calling the operation must have permission to use the specified KMS key.</p>
366      * <p>You use either of the following to identify an Amazon Web Services KMS key in
367      * the current account:</p> <ul> <li> <p>KMS Key ID:
368      * "1234abcd-12ab-34cd-56ef-1234567890ab"</p> </li> <li> <p>KMS Key Alias:
369      * "alias/ExampleAlias"</p> </li> </ul> <p> You can use either of the following to
370      * identify a KMS key in the current account or another account:</p> <ul> <li>
371      * <p>Amazon Resource Name (ARN) of a KMS key in the current account or another
372      * account: "arn:aws:kms:region:account
373      * ID:key/1234abcd-12ab-34cd-56ef1234567890ab"</p> </li> <li> <p>ARN of a KMS Key
374      * Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias"</p> </li> </ul> <p>If
375      * you don't specify an encryption key, the output of the call analytics job is
376      * encrypted with the default Amazon S3 key (SSE-S3).</p> <p>If you specify a KMS
377      * key to encrypt your output, you must also specify an output location in the
378      * <code>OutputLocation</code> parameter. </p>
379      */
SetOutputEncryptionKMSKeyId(Aws::String && value)380     inline void SetOutputEncryptionKMSKeyId(Aws::String&& value) { m_outputEncryptionKMSKeyIdHasBeenSet = true; m_outputEncryptionKMSKeyId = std::move(value); }
381 
382     /**
383      * <p>The Amazon Resource Name (ARN) of the Amazon Web Services Key Management
384      * Service key used to encrypt the output of the call analytics job. The user
385      * calling the operation must have permission to use the specified KMS key.</p>
386      * <p>You use either of the following to identify an Amazon Web Services KMS key in
387      * the current account:</p> <ul> <li> <p>KMS Key ID:
388      * "1234abcd-12ab-34cd-56ef-1234567890ab"</p> </li> <li> <p>KMS Key Alias:
389      * "alias/ExampleAlias"</p> </li> </ul> <p> You can use either of the following to
390      * identify a KMS key in the current account or another account:</p> <ul> <li>
391      * <p>Amazon Resource Name (ARN) of a KMS key in the current account or another
392      * account: "arn:aws:kms:region:account
393      * ID:key/1234abcd-12ab-34cd-56ef1234567890ab"</p> </li> <li> <p>ARN of a KMS Key
394      * Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias"</p> </li> </ul> <p>If
395      * you don't specify an encryption key, the output of the call analytics job is
396      * encrypted with the default Amazon S3 key (SSE-S3).</p> <p>If you specify a KMS
397      * key to encrypt your output, you must also specify an output location in the
398      * <code>OutputLocation</code> parameter. </p>
399      */
SetOutputEncryptionKMSKeyId(const char * value)400     inline void SetOutputEncryptionKMSKeyId(const char* value) { m_outputEncryptionKMSKeyIdHasBeenSet = true; m_outputEncryptionKMSKeyId.assign(value); }
401 
402     /**
403      * <p>The Amazon Resource Name (ARN) of the Amazon Web Services Key Management
404      * Service key used to encrypt the output of the call analytics job. The user
405      * calling the operation must have permission to use the specified KMS key.</p>
406      * <p>You use either of the following to identify an Amazon Web Services KMS key in
407      * the current account:</p> <ul> <li> <p>KMS Key ID:
408      * "1234abcd-12ab-34cd-56ef-1234567890ab"</p> </li> <li> <p>KMS Key Alias:
409      * "alias/ExampleAlias"</p> </li> </ul> <p> You can use either of the following to
410      * identify a KMS key in the current account or another account:</p> <ul> <li>
411      * <p>Amazon Resource Name (ARN) of a KMS key in the current account or another
412      * account: "arn:aws:kms:region:account
413      * ID:key/1234abcd-12ab-34cd-56ef1234567890ab"</p> </li> <li> <p>ARN of a KMS Key
414      * Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias"</p> </li> </ul> <p>If
415      * you don't specify an encryption key, the output of the call analytics job is
416      * encrypted with the default Amazon S3 key (SSE-S3).</p> <p>If you specify a KMS
417      * key to encrypt your output, you must also specify an output location in the
418      * <code>OutputLocation</code> parameter. </p>
419      */
WithOutputEncryptionKMSKeyId(const Aws::String & value)420     inline StartCallAnalyticsJobRequest& WithOutputEncryptionKMSKeyId(const Aws::String& value) { SetOutputEncryptionKMSKeyId(value); return *this;}
421 
422     /**
423      * <p>The Amazon Resource Name (ARN) of the Amazon Web Services Key Management
424      * Service key used to encrypt the output of the call analytics job. The user
425      * calling the operation must have permission to use the specified KMS key.</p>
426      * <p>You use either of the following to identify an Amazon Web Services KMS key in
427      * the current account:</p> <ul> <li> <p>KMS Key ID:
428      * "1234abcd-12ab-34cd-56ef-1234567890ab"</p> </li> <li> <p>KMS Key Alias:
429      * "alias/ExampleAlias"</p> </li> </ul> <p> You can use either of the following to
430      * identify a KMS key in the current account or another account:</p> <ul> <li>
431      * <p>Amazon Resource Name (ARN) of a KMS key in the current account or another
432      * account: "arn:aws:kms:region:account
433      * ID:key/1234abcd-12ab-34cd-56ef1234567890ab"</p> </li> <li> <p>ARN of a KMS Key
434      * Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias"</p> </li> </ul> <p>If
435      * you don't specify an encryption key, the output of the call analytics job is
436      * encrypted with the default Amazon S3 key (SSE-S3).</p> <p>If you specify a KMS
437      * key to encrypt your output, you must also specify an output location in the
438      * <code>OutputLocation</code> parameter. </p>
439      */
WithOutputEncryptionKMSKeyId(Aws::String && value)440     inline StartCallAnalyticsJobRequest& WithOutputEncryptionKMSKeyId(Aws::String&& value) { SetOutputEncryptionKMSKeyId(std::move(value)); return *this;}
441 
442     /**
443      * <p>The Amazon Resource Name (ARN) of the Amazon Web Services Key Management
444      * Service key used to encrypt the output of the call analytics job. The user
445      * calling the operation must have permission to use the specified KMS key.</p>
446      * <p>You use either of the following to identify an Amazon Web Services KMS key in
447      * the current account:</p> <ul> <li> <p>KMS Key ID:
448      * "1234abcd-12ab-34cd-56ef-1234567890ab"</p> </li> <li> <p>KMS Key Alias:
449      * "alias/ExampleAlias"</p> </li> </ul> <p> You can use either of the following to
450      * identify a KMS key in the current account or another account:</p> <ul> <li>
451      * <p>Amazon Resource Name (ARN) of a KMS key in the current account or another
452      * account: "arn:aws:kms:region:account
453      * ID:key/1234abcd-12ab-34cd-56ef1234567890ab"</p> </li> <li> <p>ARN of a KMS Key
454      * Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias"</p> </li> </ul> <p>If
455      * you don't specify an encryption key, the output of the call analytics job is
456      * encrypted with the default Amazon S3 key (SSE-S3).</p> <p>If you specify a KMS
457      * key to encrypt your output, you must also specify an output location in the
458      * <code>OutputLocation</code> parameter. </p>
459      */
WithOutputEncryptionKMSKeyId(const char * value)460     inline StartCallAnalyticsJobRequest& WithOutputEncryptionKMSKeyId(const char* value) { SetOutputEncryptionKMSKeyId(value); return *this;}
461 
462 
463     /**
464      * <p>The Amazon Resource Name (ARN) of a role that has access to the S3 bucket
465      * that contains your input files. Amazon Transcribe assumes this role to read
466      * queued audio files. If you have specified an output S3 bucket for your
467      * transcription results, this role should have access to the output bucket as
468      * well.</p>
469      */
GetDataAccessRoleArn()470     inline const Aws::String& GetDataAccessRoleArn() const{ return m_dataAccessRoleArn; }
471 
472     /**
473      * <p>The Amazon Resource Name (ARN) of a role that has access to the S3 bucket
474      * that contains your input files. Amazon Transcribe assumes this role to read
475      * queued audio files. If you have specified an output S3 bucket for your
476      * transcription results, this role should have access to the output bucket as
477      * well.</p>
478      */
DataAccessRoleArnHasBeenSet()479     inline bool DataAccessRoleArnHasBeenSet() const { return m_dataAccessRoleArnHasBeenSet; }
480 
481     /**
482      * <p>The Amazon Resource Name (ARN) of a role that has access to the S3 bucket
483      * that contains your input files. Amazon Transcribe assumes this role to read
484      * queued audio files. If you have specified an output S3 bucket for your
485      * transcription results, this role should have access to the output bucket as
486      * well.</p>
487      */
SetDataAccessRoleArn(const Aws::String & value)488     inline void SetDataAccessRoleArn(const Aws::String& value) { m_dataAccessRoleArnHasBeenSet = true; m_dataAccessRoleArn = value; }
489 
490     /**
491      * <p>The Amazon Resource Name (ARN) of a role that has access to the S3 bucket
492      * that contains your input files. Amazon Transcribe assumes this role to read
493      * queued audio files. If you have specified an output S3 bucket for your
494      * transcription results, this role should have access to the output bucket as
495      * well.</p>
496      */
SetDataAccessRoleArn(Aws::String && value)497     inline void SetDataAccessRoleArn(Aws::String&& value) { m_dataAccessRoleArnHasBeenSet = true; m_dataAccessRoleArn = std::move(value); }
498 
499     /**
500      * <p>The Amazon Resource Name (ARN) of a role that has access to the S3 bucket
501      * that contains your input files. Amazon Transcribe assumes this role to read
502      * queued audio files. If you have specified an output S3 bucket for your
503      * transcription results, this role should have access to the output bucket as
504      * well.</p>
505      */
SetDataAccessRoleArn(const char * value)506     inline void SetDataAccessRoleArn(const char* value) { m_dataAccessRoleArnHasBeenSet = true; m_dataAccessRoleArn.assign(value); }
507 
508     /**
509      * <p>The Amazon Resource Name (ARN) of a role that has access to the S3 bucket
510      * that contains your input files. Amazon Transcribe assumes this role to read
511      * queued audio files. If you have specified an output S3 bucket for your
512      * transcription results, this role should have access to the output bucket as
513      * well.</p>
514      */
WithDataAccessRoleArn(const Aws::String & value)515     inline StartCallAnalyticsJobRequest& WithDataAccessRoleArn(const Aws::String& value) { SetDataAccessRoleArn(value); return *this;}
516 
517     /**
518      * <p>The Amazon Resource Name (ARN) of a role that has access to the S3 bucket
519      * that contains your input files. Amazon Transcribe assumes this role to read
520      * queued audio files. If you have specified an output S3 bucket for your
521      * transcription results, this role should have access to the output bucket as
522      * well.</p>
523      */
WithDataAccessRoleArn(Aws::String && value)524     inline StartCallAnalyticsJobRequest& WithDataAccessRoleArn(Aws::String&& value) { SetDataAccessRoleArn(std::move(value)); return *this;}
525 
526     /**
527      * <p>The Amazon Resource Name (ARN) of a role that has access to the S3 bucket
528      * that contains your input files. Amazon Transcribe assumes this role to read
529      * queued audio files. If you have specified an output S3 bucket for your
530      * transcription results, this role should have access to the output bucket as
531      * well.</p>
532      */
WithDataAccessRoleArn(const char * value)533     inline StartCallAnalyticsJobRequest& WithDataAccessRoleArn(const char* value) { SetDataAccessRoleArn(value); return *this;}
534 
535 
536     /**
537      * <p>A <code>Settings</code> object that provides optional settings for a call
538      * analytics job. </p>
539      */
GetSettings()540     inline const CallAnalyticsJobSettings& GetSettings() const{ return m_settings; }
541 
542     /**
543      * <p>A <code>Settings</code> object that provides optional settings for a call
544      * analytics job. </p>
545      */
SettingsHasBeenSet()546     inline bool SettingsHasBeenSet() const { return m_settingsHasBeenSet; }
547 
548     /**
549      * <p>A <code>Settings</code> object that provides optional settings for a call
550      * analytics job. </p>
551      */
SetSettings(const CallAnalyticsJobSettings & value)552     inline void SetSettings(const CallAnalyticsJobSettings& value) { m_settingsHasBeenSet = true; m_settings = value; }
553 
554     /**
555      * <p>A <code>Settings</code> object that provides optional settings for a call
556      * analytics job. </p>
557      */
SetSettings(CallAnalyticsJobSettings && value)558     inline void SetSettings(CallAnalyticsJobSettings&& value) { m_settingsHasBeenSet = true; m_settings = std::move(value); }
559 
560     /**
561      * <p>A <code>Settings</code> object that provides optional settings for a call
562      * analytics job. </p>
563      */
WithSettings(const CallAnalyticsJobSettings & value)564     inline StartCallAnalyticsJobRequest& WithSettings(const CallAnalyticsJobSettings& value) { SetSettings(value); return *this;}
565 
566     /**
567      * <p>A <code>Settings</code> object that provides optional settings for a call
568      * analytics job. </p>
569      */
WithSettings(CallAnalyticsJobSettings && value)570     inline StartCallAnalyticsJobRequest& WithSettings(CallAnalyticsJobSettings&& value) { SetSettings(std::move(value)); return *this;}
571 
572 
573     /**
574      * <p>When you start a call analytics job, you must pass an array that maps the
575      * agent and the customer to specific audio channels. The values you can assign to
576      * a channel are 0 and 1. The agent and the customer must each have their own
577      * channel. You can't assign more than one channel to an agent or customer. </p>
578      */
GetChannelDefinitions()579     inline const Aws::Vector<ChannelDefinition>& GetChannelDefinitions() const{ return m_channelDefinitions; }
580 
581     /**
582      * <p>When you start a call analytics job, you must pass an array that maps the
583      * agent and the customer to specific audio channels. The values you can assign to
584      * a channel are 0 and 1. The agent and the customer must each have their own
585      * channel. You can't assign more than one channel to an agent or customer. </p>
586      */
ChannelDefinitionsHasBeenSet()587     inline bool ChannelDefinitionsHasBeenSet() const { return m_channelDefinitionsHasBeenSet; }
588 
589     /**
590      * <p>When you start a call analytics job, you must pass an array that maps the
591      * agent and the customer to specific audio channels. The values you can assign to
592      * a channel are 0 and 1. The agent and the customer must each have their own
593      * channel. You can't assign more than one channel to an agent or customer. </p>
594      */
SetChannelDefinitions(const Aws::Vector<ChannelDefinition> & value)595     inline void SetChannelDefinitions(const Aws::Vector<ChannelDefinition>& value) { m_channelDefinitionsHasBeenSet = true; m_channelDefinitions = value; }
596 
597     /**
598      * <p>When you start a call analytics job, you must pass an array that maps the
599      * agent and the customer to specific audio channels. The values you can assign to
600      * a channel are 0 and 1. The agent and the customer must each have their own
601      * channel. You can't assign more than one channel to an agent or customer. </p>
602      */
SetChannelDefinitions(Aws::Vector<ChannelDefinition> && value)603     inline void SetChannelDefinitions(Aws::Vector<ChannelDefinition>&& value) { m_channelDefinitionsHasBeenSet = true; m_channelDefinitions = std::move(value); }
604 
605     /**
606      * <p>When you start a call analytics job, you must pass an array that maps the
607      * agent and the customer to specific audio channels. The values you can assign to
608      * a channel are 0 and 1. The agent and the customer must each have their own
609      * channel. You can't assign more than one channel to an agent or customer. </p>
610      */
WithChannelDefinitions(const Aws::Vector<ChannelDefinition> & value)611     inline StartCallAnalyticsJobRequest& WithChannelDefinitions(const Aws::Vector<ChannelDefinition>& value) { SetChannelDefinitions(value); return *this;}
612 
613     /**
614      * <p>When you start a call analytics job, you must pass an array that maps the
615      * agent and the customer to specific audio channels. The values you can assign to
616      * a channel are 0 and 1. The agent and the customer must each have their own
617      * channel. You can't assign more than one channel to an agent or customer. </p>
618      */
WithChannelDefinitions(Aws::Vector<ChannelDefinition> && value)619     inline StartCallAnalyticsJobRequest& WithChannelDefinitions(Aws::Vector<ChannelDefinition>&& value) { SetChannelDefinitions(std::move(value)); return *this;}
620 
621     /**
622      * <p>When you start a call analytics job, you must pass an array that maps the
623      * agent and the customer to specific audio channels. The values you can assign to
624      * a channel are 0 and 1. The agent and the customer must each have their own
625      * channel. You can't assign more than one channel to an agent or customer. </p>
626      */
AddChannelDefinitions(const ChannelDefinition & value)627     inline StartCallAnalyticsJobRequest& AddChannelDefinitions(const ChannelDefinition& value) { m_channelDefinitionsHasBeenSet = true; m_channelDefinitions.push_back(value); return *this; }
628 
629     /**
630      * <p>When you start a call analytics job, you must pass an array that maps the
631      * agent and the customer to specific audio channels. The values you can assign to
632      * a channel are 0 and 1. The agent and the customer must each have their own
633      * channel. You can't assign more than one channel to an agent or customer. </p>
634      */
AddChannelDefinitions(ChannelDefinition && value)635     inline StartCallAnalyticsJobRequest& AddChannelDefinitions(ChannelDefinition&& value) { m_channelDefinitionsHasBeenSet = true; m_channelDefinitions.push_back(std::move(value)); return *this; }
636 
637   private:
638 
639     Aws::String m_callAnalyticsJobName;
640     bool m_callAnalyticsJobNameHasBeenSet;
641 
642     Media m_media;
643     bool m_mediaHasBeenSet;
644 
645     Aws::String m_outputLocation;
646     bool m_outputLocationHasBeenSet;
647 
648     Aws::String m_outputEncryptionKMSKeyId;
649     bool m_outputEncryptionKMSKeyIdHasBeenSet;
650 
651     Aws::String m_dataAccessRoleArn;
652     bool m_dataAccessRoleArnHasBeenSet;
653 
654     CallAnalyticsJobSettings m_settings;
655     bool m_settingsHasBeenSet;
656 
657     Aws::Vector<ChannelDefinition> m_channelDefinitions;
658     bool m_channelDefinitionsHasBeenSet;
659   };
660 
661 } // namespace Model
662 } // namespace TranscribeService
663 } // namespace Aws
664