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/elasticmapreduce/EMR_EXPORTS.h>
8 #include <aws/elasticmapreduce/EMRRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/elasticmapreduce/model/JobFlowInstancesConfig.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/elasticmapreduce/model/ScaleDownBehavior.h>
13 #include <aws/elasticmapreduce/model/RepoUpgradeOnBoot.h>
14 #include <aws/elasticmapreduce/model/KerberosAttributes.h>
15 #include <aws/elasticmapreduce/model/ManagedScalingPolicy.h>
16 #include <aws/elasticmapreduce/model/AutoTerminationPolicy.h>
17 #include <aws/elasticmapreduce/model/StepConfig.h>
18 #include <aws/elasticmapreduce/model/BootstrapActionConfig.h>
19 #include <aws/elasticmapreduce/model/SupportedProductConfig.h>
20 #include <aws/elasticmapreduce/model/Application.h>
21 #include <aws/elasticmapreduce/model/Configuration.h>
22 #include <aws/elasticmapreduce/model/Tag.h>
23 #include <aws/elasticmapreduce/model/PlacementGroupConfig.h>
24 #include <utility>
25 
26 namespace Aws
27 {
28 namespace EMR
29 {
30 namespace Model
31 {
32 
33   /**
34    * <p> Input to the <a>RunJobFlow</a> operation. </p><p><h3>See Also:</h3>   <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlowInput">AWS
36    * API Reference</a></p>
37    */
38   class AWS_EMR_API RunJobFlowRequest : public EMRRequest
39   {
40   public:
41     RunJobFlowRequest();
42 
43     // Service request name is the Operation name which will send this request out,
44     // each operation should has unique request name, so that we can get operation's name from this request.
45     // Note: this is not true for response, multiple operations may have the same response name,
46     // so we can not get operation's name from response.
GetServiceRequestName()47     inline virtual const char* GetServiceRequestName() const override { return "RunJobFlow"; }
48 
49     Aws::String SerializePayload() const override;
50 
51     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
52 
53 
54     /**
55      * <p>The name of the job flow.</p>
56      */
GetName()57     inline const Aws::String& GetName() const{ return m_name; }
58 
59     /**
60      * <p>The name of the job flow.</p>
61      */
NameHasBeenSet()62     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
63 
64     /**
65      * <p>The name of the job flow.</p>
66      */
SetName(const Aws::String & value)67     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
68 
69     /**
70      * <p>The name of the job flow.</p>
71      */
SetName(Aws::String && value)72     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
73 
74     /**
75      * <p>The name of the job flow.</p>
76      */
SetName(const char * value)77     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
78 
79     /**
80      * <p>The name of the job flow.</p>
81      */
WithName(const Aws::String & value)82     inline RunJobFlowRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
83 
84     /**
85      * <p>The name of the job flow.</p>
86      */
WithName(Aws::String && value)87     inline RunJobFlowRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
88 
89     /**
90      * <p>The name of the job flow.</p>
91      */
WithName(const char * value)92     inline RunJobFlowRequest& WithName(const char* value) { SetName(value); return *this;}
93 
94 
95     /**
96      * <p>The location in Amazon S3 to write the log files of the job flow. If a value
97      * is not provided, logs are not created.</p>
98      */
GetLogUri()99     inline const Aws::String& GetLogUri() const{ return m_logUri; }
100 
101     /**
102      * <p>The location in Amazon S3 to write the log files of the job flow. If a value
103      * is not provided, logs are not created.</p>
104      */
LogUriHasBeenSet()105     inline bool LogUriHasBeenSet() const { return m_logUriHasBeenSet; }
106 
107     /**
108      * <p>The location in Amazon S3 to write the log files of the job flow. If a value
109      * is not provided, logs are not created.</p>
110      */
SetLogUri(const Aws::String & value)111     inline void SetLogUri(const Aws::String& value) { m_logUriHasBeenSet = true; m_logUri = value; }
112 
113     /**
114      * <p>The location in Amazon S3 to write the log files of the job flow. If a value
115      * is not provided, logs are not created.</p>
116      */
SetLogUri(Aws::String && value)117     inline void SetLogUri(Aws::String&& value) { m_logUriHasBeenSet = true; m_logUri = std::move(value); }
118 
119     /**
120      * <p>The location in Amazon S3 to write the log files of the job flow. If a value
121      * is not provided, logs are not created.</p>
122      */
SetLogUri(const char * value)123     inline void SetLogUri(const char* value) { m_logUriHasBeenSet = true; m_logUri.assign(value); }
124 
125     /**
126      * <p>The location in Amazon S3 to write the log files of the job flow. If a value
127      * is not provided, logs are not created.</p>
128      */
WithLogUri(const Aws::String & value)129     inline RunJobFlowRequest& WithLogUri(const Aws::String& value) { SetLogUri(value); return *this;}
130 
131     /**
132      * <p>The location in Amazon S3 to write the log files of the job flow. If a value
133      * is not provided, logs are not created.</p>
134      */
WithLogUri(Aws::String && value)135     inline RunJobFlowRequest& WithLogUri(Aws::String&& value) { SetLogUri(std::move(value)); return *this;}
136 
137     /**
138      * <p>The location in Amazon S3 to write the log files of the job flow. If a value
139      * is not provided, logs are not created.</p>
140      */
WithLogUri(const char * value)141     inline RunJobFlowRequest& WithLogUri(const char* value) { SetLogUri(value); return *this;}
142 
143 
144     /**
145      * <p>The KMS key used for encrypting log files. If a value is not provided, the
146      * logs remain encrypted by AES-256. This attribute is only available with Amazon
147      * EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.</p>
148      */
GetLogEncryptionKmsKeyId()149     inline const Aws::String& GetLogEncryptionKmsKeyId() const{ return m_logEncryptionKmsKeyId; }
150 
151     /**
152      * <p>The KMS key used for encrypting log files. If a value is not provided, the
153      * logs remain encrypted by AES-256. This attribute is only available with Amazon
154      * EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.</p>
155      */
LogEncryptionKmsKeyIdHasBeenSet()156     inline bool LogEncryptionKmsKeyIdHasBeenSet() const { return m_logEncryptionKmsKeyIdHasBeenSet; }
157 
158     /**
159      * <p>The KMS key used for encrypting log files. If a value is not provided, the
160      * logs remain encrypted by AES-256. This attribute is only available with Amazon
161      * EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.</p>
162      */
SetLogEncryptionKmsKeyId(const Aws::String & value)163     inline void SetLogEncryptionKmsKeyId(const Aws::String& value) { m_logEncryptionKmsKeyIdHasBeenSet = true; m_logEncryptionKmsKeyId = value; }
164 
165     /**
166      * <p>The KMS key used for encrypting log files. If a value is not provided, the
167      * logs remain encrypted by AES-256. This attribute is only available with Amazon
168      * EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.</p>
169      */
SetLogEncryptionKmsKeyId(Aws::String && value)170     inline void SetLogEncryptionKmsKeyId(Aws::String&& value) { m_logEncryptionKmsKeyIdHasBeenSet = true; m_logEncryptionKmsKeyId = std::move(value); }
171 
172     /**
173      * <p>The KMS key used for encrypting log files. If a value is not provided, the
174      * logs remain encrypted by AES-256. This attribute is only available with Amazon
175      * EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.</p>
176      */
SetLogEncryptionKmsKeyId(const char * value)177     inline void SetLogEncryptionKmsKeyId(const char* value) { m_logEncryptionKmsKeyIdHasBeenSet = true; m_logEncryptionKmsKeyId.assign(value); }
178 
179     /**
180      * <p>The KMS key used for encrypting log files. If a value is not provided, the
181      * logs remain encrypted by AES-256. This attribute is only available with Amazon
182      * EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.</p>
183      */
WithLogEncryptionKmsKeyId(const Aws::String & value)184     inline RunJobFlowRequest& WithLogEncryptionKmsKeyId(const Aws::String& value) { SetLogEncryptionKmsKeyId(value); return *this;}
185 
186     /**
187      * <p>The KMS key used for encrypting log files. If a value is not provided, the
188      * logs remain encrypted by AES-256. This attribute is only available with Amazon
189      * EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.</p>
190      */
WithLogEncryptionKmsKeyId(Aws::String && value)191     inline RunJobFlowRequest& WithLogEncryptionKmsKeyId(Aws::String&& value) { SetLogEncryptionKmsKeyId(std::move(value)); return *this;}
192 
193     /**
194      * <p>The KMS key used for encrypting log files. If a value is not provided, the
195      * logs remain encrypted by AES-256. This attribute is only available with Amazon
196      * EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.</p>
197      */
WithLogEncryptionKmsKeyId(const char * value)198     inline RunJobFlowRequest& WithLogEncryptionKmsKeyId(const char* value) { SetLogEncryptionKmsKeyId(value); return *this;}
199 
200 
201     /**
202      * <p>A JSON string for selecting additional features.</p>
203      */
GetAdditionalInfo()204     inline const Aws::String& GetAdditionalInfo() const{ return m_additionalInfo; }
205 
206     /**
207      * <p>A JSON string for selecting additional features.</p>
208      */
AdditionalInfoHasBeenSet()209     inline bool AdditionalInfoHasBeenSet() const { return m_additionalInfoHasBeenSet; }
210 
211     /**
212      * <p>A JSON string for selecting additional features.</p>
213      */
SetAdditionalInfo(const Aws::String & value)214     inline void SetAdditionalInfo(const Aws::String& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = value; }
215 
216     /**
217      * <p>A JSON string for selecting additional features.</p>
218      */
SetAdditionalInfo(Aws::String && value)219     inline void SetAdditionalInfo(Aws::String&& value) { m_additionalInfoHasBeenSet = true; m_additionalInfo = std::move(value); }
220 
221     /**
222      * <p>A JSON string for selecting additional features.</p>
223      */
SetAdditionalInfo(const char * value)224     inline void SetAdditionalInfo(const char* value) { m_additionalInfoHasBeenSet = true; m_additionalInfo.assign(value); }
225 
226     /**
227      * <p>A JSON string for selecting additional features.</p>
228      */
WithAdditionalInfo(const Aws::String & value)229     inline RunJobFlowRequest& WithAdditionalInfo(const Aws::String& value) { SetAdditionalInfo(value); return *this;}
230 
231     /**
232      * <p>A JSON string for selecting additional features.</p>
233      */
WithAdditionalInfo(Aws::String && value)234     inline RunJobFlowRequest& WithAdditionalInfo(Aws::String&& value) { SetAdditionalInfo(std::move(value)); return *this;}
235 
236     /**
237      * <p>A JSON string for selecting additional features.</p>
238      */
WithAdditionalInfo(const char * value)239     inline RunJobFlowRequest& WithAdditionalInfo(const char* value) { SetAdditionalInfo(value); return *this;}
240 
241 
242     /**
243      * <p>Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
244      * 4.0 and later, <code>ReleaseLabel</code> is used. To specify a custom AMI, use
245      * <code>CustomAmiID</code>.</p>
246      */
GetAmiVersion()247     inline const Aws::String& GetAmiVersion() const{ return m_amiVersion; }
248 
249     /**
250      * <p>Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
251      * 4.0 and later, <code>ReleaseLabel</code> is used. To specify a custom AMI, use
252      * <code>CustomAmiID</code>.</p>
253      */
AmiVersionHasBeenSet()254     inline bool AmiVersionHasBeenSet() const { return m_amiVersionHasBeenSet; }
255 
256     /**
257      * <p>Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
258      * 4.0 and later, <code>ReleaseLabel</code> is used. To specify a custom AMI, use
259      * <code>CustomAmiID</code>.</p>
260      */
SetAmiVersion(const Aws::String & value)261     inline void SetAmiVersion(const Aws::String& value) { m_amiVersionHasBeenSet = true; m_amiVersion = value; }
262 
263     /**
264      * <p>Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
265      * 4.0 and later, <code>ReleaseLabel</code> is used. To specify a custom AMI, use
266      * <code>CustomAmiID</code>.</p>
267      */
SetAmiVersion(Aws::String && value)268     inline void SetAmiVersion(Aws::String&& value) { m_amiVersionHasBeenSet = true; m_amiVersion = std::move(value); }
269 
270     /**
271      * <p>Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
272      * 4.0 and later, <code>ReleaseLabel</code> is used. To specify a custom AMI, use
273      * <code>CustomAmiID</code>.</p>
274      */
SetAmiVersion(const char * value)275     inline void SetAmiVersion(const char* value) { m_amiVersionHasBeenSet = true; m_amiVersion.assign(value); }
276 
277     /**
278      * <p>Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
279      * 4.0 and later, <code>ReleaseLabel</code> is used. To specify a custom AMI, use
280      * <code>CustomAmiID</code>.</p>
281      */
WithAmiVersion(const Aws::String & value)282     inline RunJobFlowRequest& WithAmiVersion(const Aws::String& value) { SetAmiVersion(value); return *this;}
283 
284     /**
285      * <p>Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
286      * 4.0 and later, <code>ReleaseLabel</code> is used. To specify a custom AMI, use
287      * <code>CustomAmiID</code>.</p>
288      */
WithAmiVersion(Aws::String && value)289     inline RunJobFlowRequest& WithAmiVersion(Aws::String&& value) { SetAmiVersion(std::move(value)); return *this;}
290 
291     /**
292      * <p>Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
293      * 4.0 and later, <code>ReleaseLabel</code> is used. To specify a custom AMI, use
294      * <code>CustomAmiID</code>.</p>
295      */
WithAmiVersion(const char * value)296     inline RunJobFlowRequest& WithAmiVersion(const char* value) { SetAmiVersion(value); return *this;}
297 
298 
299     /**
300      * <p>The Amazon EMR release label, which determines the version of open-source
301      * application packages installed on the cluster. Release labels are in the form
302      * <code>emr-x.x.x</code>, where x.x.x is an Amazon EMR release version such as
303      * <code>emr-5.14.0</code>. For more information about Amazon EMR release versions
304      * and included application versions and features, see <a
305      * href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">https://docs.aws.amazon.com/emr/latest/ReleaseGuide/</a>.
306      * The release label applies only to Amazon EMR releases version 4.0 and later.
307      * Earlier versions use <code>AmiVersion</code>.</p>
308      */
GetReleaseLabel()309     inline const Aws::String& GetReleaseLabel() const{ return m_releaseLabel; }
310 
311     /**
312      * <p>The Amazon EMR release label, which determines the version of open-source
313      * application packages installed on the cluster. Release labels are in the form
314      * <code>emr-x.x.x</code>, where x.x.x is an Amazon EMR release version such as
315      * <code>emr-5.14.0</code>. For more information about Amazon EMR release versions
316      * and included application versions and features, see <a
317      * href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">https://docs.aws.amazon.com/emr/latest/ReleaseGuide/</a>.
318      * The release label applies only to Amazon EMR releases version 4.0 and later.
319      * Earlier versions use <code>AmiVersion</code>.</p>
320      */
ReleaseLabelHasBeenSet()321     inline bool ReleaseLabelHasBeenSet() const { return m_releaseLabelHasBeenSet; }
322 
323     /**
324      * <p>The Amazon EMR release label, which determines the version of open-source
325      * application packages installed on the cluster. Release labels are in the form
326      * <code>emr-x.x.x</code>, where x.x.x is an Amazon EMR release version such as
327      * <code>emr-5.14.0</code>. For more information about Amazon EMR release versions
328      * and included application versions and features, see <a
329      * href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">https://docs.aws.amazon.com/emr/latest/ReleaseGuide/</a>.
330      * The release label applies only to Amazon EMR releases version 4.0 and later.
331      * Earlier versions use <code>AmiVersion</code>.</p>
332      */
SetReleaseLabel(const Aws::String & value)333     inline void SetReleaseLabel(const Aws::String& value) { m_releaseLabelHasBeenSet = true; m_releaseLabel = value; }
334 
335     /**
336      * <p>The Amazon EMR release label, which determines the version of open-source
337      * application packages installed on the cluster. Release labels are in the form
338      * <code>emr-x.x.x</code>, where x.x.x is an Amazon EMR release version such as
339      * <code>emr-5.14.0</code>. For more information about Amazon EMR release versions
340      * and included application versions and features, see <a
341      * href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">https://docs.aws.amazon.com/emr/latest/ReleaseGuide/</a>.
342      * The release label applies only to Amazon EMR releases version 4.0 and later.
343      * Earlier versions use <code>AmiVersion</code>.</p>
344      */
SetReleaseLabel(Aws::String && value)345     inline void SetReleaseLabel(Aws::String&& value) { m_releaseLabelHasBeenSet = true; m_releaseLabel = std::move(value); }
346 
347     /**
348      * <p>The Amazon EMR release label, which determines the version of open-source
349      * application packages installed on the cluster. Release labels are in the form
350      * <code>emr-x.x.x</code>, where x.x.x is an Amazon EMR release version such as
351      * <code>emr-5.14.0</code>. For more information about Amazon EMR release versions
352      * and included application versions and features, see <a
353      * href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">https://docs.aws.amazon.com/emr/latest/ReleaseGuide/</a>.
354      * The release label applies only to Amazon EMR releases version 4.0 and later.
355      * Earlier versions use <code>AmiVersion</code>.</p>
356      */
SetReleaseLabel(const char * value)357     inline void SetReleaseLabel(const char* value) { m_releaseLabelHasBeenSet = true; m_releaseLabel.assign(value); }
358 
359     /**
360      * <p>The Amazon EMR release label, which determines the version of open-source
361      * application packages installed on the cluster. Release labels are in the form
362      * <code>emr-x.x.x</code>, where x.x.x is an Amazon EMR release version such as
363      * <code>emr-5.14.0</code>. For more information about Amazon EMR release versions
364      * and included application versions and features, see <a
365      * href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">https://docs.aws.amazon.com/emr/latest/ReleaseGuide/</a>.
366      * The release label applies only to Amazon EMR releases version 4.0 and later.
367      * Earlier versions use <code>AmiVersion</code>.</p>
368      */
WithReleaseLabel(const Aws::String & value)369     inline RunJobFlowRequest& WithReleaseLabel(const Aws::String& value) { SetReleaseLabel(value); return *this;}
370 
371     /**
372      * <p>The Amazon EMR release label, which determines the version of open-source
373      * application packages installed on the cluster. Release labels are in the form
374      * <code>emr-x.x.x</code>, where x.x.x is an Amazon EMR release version such as
375      * <code>emr-5.14.0</code>. For more information about Amazon EMR release versions
376      * and included application versions and features, see <a
377      * href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">https://docs.aws.amazon.com/emr/latest/ReleaseGuide/</a>.
378      * The release label applies only to Amazon EMR releases version 4.0 and later.
379      * Earlier versions use <code>AmiVersion</code>.</p>
380      */
WithReleaseLabel(Aws::String && value)381     inline RunJobFlowRequest& WithReleaseLabel(Aws::String&& value) { SetReleaseLabel(std::move(value)); return *this;}
382 
383     /**
384      * <p>The Amazon EMR release label, which determines the version of open-source
385      * application packages installed on the cluster. Release labels are in the form
386      * <code>emr-x.x.x</code>, where x.x.x is an Amazon EMR release version such as
387      * <code>emr-5.14.0</code>. For more information about Amazon EMR release versions
388      * and included application versions and features, see <a
389      * href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">https://docs.aws.amazon.com/emr/latest/ReleaseGuide/</a>.
390      * The release label applies only to Amazon EMR releases version 4.0 and later.
391      * Earlier versions use <code>AmiVersion</code>.</p>
392      */
WithReleaseLabel(const char * value)393     inline RunJobFlowRequest& WithReleaseLabel(const char* value) { SetReleaseLabel(value); return *this;}
394 
395 
396     /**
397      * <p>A specification of the number and type of Amazon EC2 instances.</p>
398      */
GetInstances()399     inline const JobFlowInstancesConfig& GetInstances() const{ return m_instances; }
400 
401     /**
402      * <p>A specification of the number and type of Amazon EC2 instances.</p>
403      */
InstancesHasBeenSet()404     inline bool InstancesHasBeenSet() const { return m_instancesHasBeenSet; }
405 
406     /**
407      * <p>A specification of the number and type of Amazon EC2 instances.</p>
408      */
SetInstances(const JobFlowInstancesConfig & value)409     inline void SetInstances(const JobFlowInstancesConfig& value) { m_instancesHasBeenSet = true; m_instances = value; }
410 
411     /**
412      * <p>A specification of the number and type of Amazon EC2 instances.</p>
413      */
SetInstances(JobFlowInstancesConfig && value)414     inline void SetInstances(JobFlowInstancesConfig&& value) { m_instancesHasBeenSet = true; m_instances = std::move(value); }
415 
416     /**
417      * <p>A specification of the number and type of Amazon EC2 instances.</p>
418      */
WithInstances(const JobFlowInstancesConfig & value)419     inline RunJobFlowRequest& WithInstances(const JobFlowInstancesConfig& value) { SetInstances(value); return *this;}
420 
421     /**
422      * <p>A specification of the number and type of Amazon EC2 instances.</p>
423      */
WithInstances(JobFlowInstancesConfig && value)424     inline RunJobFlowRequest& WithInstances(JobFlowInstancesConfig&& value) { SetInstances(std::move(value)); return *this;}
425 
426 
427     /**
428      * <p>A list of steps to run.</p>
429      */
GetSteps()430     inline const Aws::Vector<StepConfig>& GetSteps() const{ return m_steps; }
431 
432     /**
433      * <p>A list of steps to run.</p>
434      */
StepsHasBeenSet()435     inline bool StepsHasBeenSet() const { return m_stepsHasBeenSet; }
436 
437     /**
438      * <p>A list of steps to run.</p>
439      */
SetSteps(const Aws::Vector<StepConfig> & value)440     inline void SetSteps(const Aws::Vector<StepConfig>& value) { m_stepsHasBeenSet = true; m_steps = value; }
441 
442     /**
443      * <p>A list of steps to run.</p>
444      */
SetSteps(Aws::Vector<StepConfig> && value)445     inline void SetSteps(Aws::Vector<StepConfig>&& value) { m_stepsHasBeenSet = true; m_steps = std::move(value); }
446 
447     /**
448      * <p>A list of steps to run.</p>
449      */
WithSteps(const Aws::Vector<StepConfig> & value)450     inline RunJobFlowRequest& WithSteps(const Aws::Vector<StepConfig>& value) { SetSteps(value); return *this;}
451 
452     /**
453      * <p>A list of steps to run.</p>
454      */
WithSteps(Aws::Vector<StepConfig> && value)455     inline RunJobFlowRequest& WithSteps(Aws::Vector<StepConfig>&& value) { SetSteps(std::move(value)); return *this;}
456 
457     /**
458      * <p>A list of steps to run.</p>
459      */
AddSteps(const StepConfig & value)460     inline RunJobFlowRequest& AddSteps(const StepConfig& value) { m_stepsHasBeenSet = true; m_steps.push_back(value); return *this; }
461 
462     /**
463      * <p>A list of steps to run.</p>
464      */
AddSteps(StepConfig && value)465     inline RunJobFlowRequest& AddSteps(StepConfig&& value) { m_stepsHasBeenSet = true; m_steps.push_back(std::move(value)); return *this; }
466 
467 
468     /**
469      * <p>A list of bootstrap actions to run before Hadoop starts on the cluster
470      * nodes.</p>
471      */
GetBootstrapActions()472     inline const Aws::Vector<BootstrapActionConfig>& GetBootstrapActions() const{ return m_bootstrapActions; }
473 
474     /**
475      * <p>A list of bootstrap actions to run before Hadoop starts on the cluster
476      * nodes.</p>
477      */
BootstrapActionsHasBeenSet()478     inline bool BootstrapActionsHasBeenSet() const { return m_bootstrapActionsHasBeenSet; }
479 
480     /**
481      * <p>A list of bootstrap actions to run before Hadoop starts on the cluster
482      * nodes.</p>
483      */
SetBootstrapActions(const Aws::Vector<BootstrapActionConfig> & value)484     inline void SetBootstrapActions(const Aws::Vector<BootstrapActionConfig>& value) { m_bootstrapActionsHasBeenSet = true; m_bootstrapActions = value; }
485 
486     /**
487      * <p>A list of bootstrap actions to run before Hadoop starts on the cluster
488      * nodes.</p>
489      */
SetBootstrapActions(Aws::Vector<BootstrapActionConfig> && value)490     inline void SetBootstrapActions(Aws::Vector<BootstrapActionConfig>&& value) { m_bootstrapActionsHasBeenSet = true; m_bootstrapActions = std::move(value); }
491 
492     /**
493      * <p>A list of bootstrap actions to run before Hadoop starts on the cluster
494      * nodes.</p>
495      */
WithBootstrapActions(const Aws::Vector<BootstrapActionConfig> & value)496     inline RunJobFlowRequest& WithBootstrapActions(const Aws::Vector<BootstrapActionConfig>& value) { SetBootstrapActions(value); return *this;}
497 
498     /**
499      * <p>A list of bootstrap actions to run before Hadoop starts on the cluster
500      * nodes.</p>
501      */
WithBootstrapActions(Aws::Vector<BootstrapActionConfig> && value)502     inline RunJobFlowRequest& WithBootstrapActions(Aws::Vector<BootstrapActionConfig>&& value) { SetBootstrapActions(std::move(value)); return *this;}
503 
504     /**
505      * <p>A list of bootstrap actions to run before Hadoop starts on the cluster
506      * nodes.</p>
507      */
AddBootstrapActions(const BootstrapActionConfig & value)508     inline RunJobFlowRequest& AddBootstrapActions(const BootstrapActionConfig& value) { m_bootstrapActionsHasBeenSet = true; m_bootstrapActions.push_back(value); return *this; }
509 
510     /**
511      * <p>A list of bootstrap actions to run before Hadoop starts on the cluster
512      * nodes.</p>
513      */
AddBootstrapActions(BootstrapActionConfig && value)514     inline RunJobFlowRequest& AddBootstrapActions(BootstrapActionConfig&& value) { m_bootstrapActionsHasBeenSet = true; m_bootstrapActions.push_back(std::move(value)); return *this; }
515 
516 
517     /**
518      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
519      * later, use Applications.</p>  <p>A list of strings that indicates
520      * third-party software to use. For more information, see the <a
521      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
522      * EMR Developer Guide</a>. Currently supported values are:</p> <ul> <li>
523      * <p>"mapr-m3" - launch the job flow using MapR M3 Edition.</p> </li> <li>
524      * <p>"mapr-m5" - launch the job flow using MapR M5 Edition.</p> </li> </ul>
525      */
GetSupportedProducts()526     inline const Aws::Vector<Aws::String>& GetSupportedProducts() const{ return m_supportedProducts; }
527 
528     /**
529      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
530      * later, use Applications.</p>  <p>A list of strings that indicates
531      * third-party software to use. For more information, see the <a
532      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
533      * EMR Developer Guide</a>. Currently supported values are:</p> <ul> <li>
534      * <p>"mapr-m3" - launch the job flow using MapR M3 Edition.</p> </li> <li>
535      * <p>"mapr-m5" - launch the job flow using MapR M5 Edition.</p> </li> </ul>
536      */
SupportedProductsHasBeenSet()537     inline bool SupportedProductsHasBeenSet() const { return m_supportedProductsHasBeenSet; }
538 
539     /**
540      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
541      * later, use Applications.</p>  <p>A list of strings that indicates
542      * third-party software to use. For more information, see the <a
543      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
544      * EMR Developer Guide</a>. Currently supported values are:</p> <ul> <li>
545      * <p>"mapr-m3" - launch the job flow using MapR M3 Edition.</p> </li> <li>
546      * <p>"mapr-m5" - launch the job flow using MapR M5 Edition.</p> </li> </ul>
547      */
SetSupportedProducts(const Aws::Vector<Aws::String> & value)548     inline void SetSupportedProducts(const Aws::Vector<Aws::String>& value) { m_supportedProductsHasBeenSet = true; m_supportedProducts = value; }
549 
550     /**
551      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
552      * later, use Applications.</p>  <p>A list of strings that indicates
553      * third-party software to use. For more information, see the <a
554      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
555      * EMR Developer Guide</a>. Currently supported values are:</p> <ul> <li>
556      * <p>"mapr-m3" - launch the job flow using MapR M3 Edition.</p> </li> <li>
557      * <p>"mapr-m5" - launch the job flow using MapR M5 Edition.</p> </li> </ul>
558      */
SetSupportedProducts(Aws::Vector<Aws::String> && value)559     inline void SetSupportedProducts(Aws::Vector<Aws::String>&& value) { m_supportedProductsHasBeenSet = true; m_supportedProducts = std::move(value); }
560 
561     /**
562      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
563      * later, use Applications.</p>  <p>A list of strings that indicates
564      * third-party software to use. For more information, see the <a
565      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
566      * EMR Developer Guide</a>. Currently supported values are:</p> <ul> <li>
567      * <p>"mapr-m3" - launch the job flow using MapR M3 Edition.</p> </li> <li>
568      * <p>"mapr-m5" - launch the job flow using MapR M5 Edition.</p> </li> </ul>
569      */
WithSupportedProducts(const Aws::Vector<Aws::String> & value)570     inline RunJobFlowRequest& WithSupportedProducts(const Aws::Vector<Aws::String>& value) { SetSupportedProducts(value); return *this;}
571 
572     /**
573      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
574      * later, use Applications.</p>  <p>A list of strings that indicates
575      * third-party software to use. For more information, see the <a
576      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
577      * EMR Developer Guide</a>. Currently supported values are:</p> <ul> <li>
578      * <p>"mapr-m3" - launch the job flow using MapR M3 Edition.</p> </li> <li>
579      * <p>"mapr-m5" - launch the job flow using MapR M5 Edition.</p> </li> </ul>
580      */
WithSupportedProducts(Aws::Vector<Aws::String> && value)581     inline RunJobFlowRequest& WithSupportedProducts(Aws::Vector<Aws::String>&& value) { SetSupportedProducts(std::move(value)); return *this;}
582 
583     /**
584      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
585      * later, use Applications.</p>  <p>A list of strings that indicates
586      * third-party software to use. For more information, see the <a
587      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
588      * EMR Developer Guide</a>. Currently supported values are:</p> <ul> <li>
589      * <p>"mapr-m3" - launch the job flow using MapR M3 Edition.</p> </li> <li>
590      * <p>"mapr-m5" - launch the job flow using MapR M5 Edition.</p> </li> </ul>
591      */
AddSupportedProducts(const Aws::String & value)592     inline RunJobFlowRequest& AddSupportedProducts(const Aws::String& value) { m_supportedProductsHasBeenSet = true; m_supportedProducts.push_back(value); return *this; }
593 
594     /**
595      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
596      * later, use Applications.</p>  <p>A list of strings that indicates
597      * third-party software to use. For more information, see the <a
598      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
599      * EMR Developer Guide</a>. Currently supported values are:</p> <ul> <li>
600      * <p>"mapr-m3" - launch the job flow using MapR M3 Edition.</p> </li> <li>
601      * <p>"mapr-m5" - launch the job flow using MapR M5 Edition.</p> </li> </ul>
602      */
AddSupportedProducts(Aws::String && value)603     inline RunJobFlowRequest& AddSupportedProducts(Aws::String&& value) { m_supportedProductsHasBeenSet = true; m_supportedProducts.push_back(std::move(value)); return *this; }
604 
605     /**
606      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
607      * later, use Applications.</p>  <p>A list of strings that indicates
608      * third-party software to use. For more information, see the <a
609      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
610      * EMR Developer Guide</a>. Currently supported values are:</p> <ul> <li>
611      * <p>"mapr-m3" - launch the job flow using MapR M3 Edition.</p> </li> <li>
612      * <p>"mapr-m5" - launch the job flow using MapR M5 Edition.</p> </li> </ul>
613      */
AddSupportedProducts(const char * value)614     inline RunJobFlowRequest& AddSupportedProducts(const char* value) { m_supportedProductsHasBeenSet = true; m_supportedProducts.push_back(value); return *this; }
615 
616 
617     /**
618      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
619      * later, use Applications.</p>  <p>A list of strings that indicates
620      * third-party software to use with the job flow that accepts a user argument list.
621      * EMR accepts and forwards the argument list to the corresponding installation
622      * script as bootstrap action arguments. For more information, see "Launch a Job
623      * Flow on the MapR Distribution for Hadoop" in the <a
624      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
625      * EMR Developer Guide</a>. Supported values are:</p> <ul> <li> <p>"mapr-m3" -
626      * launch the cluster using MapR M3 Edition.</p> </li> <li> <p>"mapr-m5" - launch
627      * the cluster using MapR M5 Edition.</p> </li> <li> <p>"mapr" with the user
628      * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow
629      * using MapR M3 or M5 Edition respectively.</p> </li> <li> <p>"mapr-m7" - launch
630      * the cluster using MapR M7 Edition.</p> </li> <li> <p>"hunk" - launch the cluster
631      * with the Hunk Big Data Analytics Platform.</p> </li> <li> <p>"hue"- launch the
632      * cluster with Hue installed.</p> </li> <li> <p>"spark" - launch the cluster with
633      * Apache Spark installed.</p> </li> <li> <p>"ganglia" - launch the cluster with
634      * the Ganglia Monitoring System installed.</p> </li> </ul>
635      */
GetNewSupportedProducts()636     inline const Aws::Vector<SupportedProductConfig>& GetNewSupportedProducts() const{ return m_newSupportedProducts; }
637 
638     /**
639      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
640      * later, use Applications.</p>  <p>A list of strings that indicates
641      * third-party software to use with the job flow that accepts a user argument list.
642      * EMR accepts and forwards the argument list to the corresponding installation
643      * script as bootstrap action arguments. For more information, see "Launch a Job
644      * Flow on the MapR Distribution for Hadoop" in the <a
645      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
646      * EMR Developer Guide</a>. Supported values are:</p> <ul> <li> <p>"mapr-m3" -
647      * launch the cluster using MapR M3 Edition.</p> </li> <li> <p>"mapr-m5" - launch
648      * the cluster using MapR M5 Edition.</p> </li> <li> <p>"mapr" with the user
649      * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow
650      * using MapR M3 or M5 Edition respectively.</p> </li> <li> <p>"mapr-m7" - launch
651      * the cluster using MapR M7 Edition.</p> </li> <li> <p>"hunk" - launch the cluster
652      * with the Hunk Big Data Analytics Platform.</p> </li> <li> <p>"hue"- launch the
653      * cluster with Hue installed.</p> </li> <li> <p>"spark" - launch the cluster with
654      * Apache Spark installed.</p> </li> <li> <p>"ganglia" - launch the cluster with
655      * the Ganglia Monitoring System installed.</p> </li> </ul>
656      */
NewSupportedProductsHasBeenSet()657     inline bool NewSupportedProductsHasBeenSet() const { return m_newSupportedProductsHasBeenSet; }
658 
659     /**
660      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
661      * later, use Applications.</p>  <p>A list of strings that indicates
662      * third-party software to use with the job flow that accepts a user argument list.
663      * EMR accepts and forwards the argument list to the corresponding installation
664      * script as bootstrap action arguments. For more information, see "Launch a Job
665      * Flow on the MapR Distribution for Hadoop" in the <a
666      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
667      * EMR Developer Guide</a>. Supported values are:</p> <ul> <li> <p>"mapr-m3" -
668      * launch the cluster using MapR M3 Edition.</p> </li> <li> <p>"mapr-m5" - launch
669      * the cluster using MapR M5 Edition.</p> </li> <li> <p>"mapr" with the user
670      * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow
671      * using MapR M3 or M5 Edition respectively.</p> </li> <li> <p>"mapr-m7" - launch
672      * the cluster using MapR M7 Edition.</p> </li> <li> <p>"hunk" - launch the cluster
673      * with the Hunk Big Data Analytics Platform.</p> </li> <li> <p>"hue"- launch the
674      * cluster with Hue installed.</p> </li> <li> <p>"spark" - launch the cluster with
675      * Apache Spark installed.</p> </li> <li> <p>"ganglia" - launch the cluster with
676      * the Ganglia Monitoring System installed.</p> </li> </ul>
677      */
SetNewSupportedProducts(const Aws::Vector<SupportedProductConfig> & value)678     inline void SetNewSupportedProducts(const Aws::Vector<SupportedProductConfig>& value) { m_newSupportedProductsHasBeenSet = true; m_newSupportedProducts = value; }
679 
680     /**
681      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
682      * later, use Applications.</p>  <p>A list of strings that indicates
683      * third-party software to use with the job flow that accepts a user argument list.
684      * EMR accepts and forwards the argument list to the corresponding installation
685      * script as bootstrap action arguments. For more information, see "Launch a Job
686      * Flow on the MapR Distribution for Hadoop" in the <a
687      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
688      * EMR Developer Guide</a>. Supported values are:</p> <ul> <li> <p>"mapr-m3" -
689      * launch the cluster using MapR M3 Edition.</p> </li> <li> <p>"mapr-m5" - launch
690      * the cluster using MapR M5 Edition.</p> </li> <li> <p>"mapr" with the user
691      * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow
692      * using MapR M3 or M5 Edition respectively.</p> </li> <li> <p>"mapr-m7" - launch
693      * the cluster using MapR M7 Edition.</p> </li> <li> <p>"hunk" - launch the cluster
694      * with the Hunk Big Data Analytics Platform.</p> </li> <li> <p>"hue"- launch the
695      * cluster with Hue installed.</p> </li> <li> <p>"spark" - launch the cluster with
696      * Apache Spark installed.</p> </li> <li> <p>"ganglia" - launch the cluster with
697      * the Ganglia Monitoring System installed.</p> </li> </ul>
698      */
SetNewSupportedProducts(Aws::Vector<SupportedProductConfig> && value)699     inline void SetNewSupportedProducts(Aws::Vector<SupportedProductConfig>&& value) { m_newSupportedProductsHasBeenSet = true; m_newSupportedProducts = std::move(value); }
700 
701     /**
702      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
703      * later, use Applications.</p>  <p>A list of strings that indicates
704      * third-party software to use with the job flow that accepts a user argument list.
705      * EMR accepts and forwards the argument list to the corresponding installation
706      * script as bootstrap action arguments. For more information, see "Launch a Job
707      * Flow on the MapR Distribution for Hadoop" in the <a
708      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
709      * EMR Developer Guide</a>. Supported values are:</p> <ul> <li> <p>"mapr-m3" -
710      * launch the cluster using MapR M3 Edition.</p> </li> <li> <p>"mapr-m5" - launch
711      * the cluster using MapR M5 Edition.</p> </li> <li> <p>"mapr" with the user
712      * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow
713      * using MapR M3 or M5 Edition respectively.</p> </li> <li> <p>"mapr-m7" - launch
714      * the cluster using MapR M7 Edition.</p> </li> <li> <p>"hunk" - launch the cluster
715      * with the Hunk Big Data Analytics Platform.</p> </li> <li> <p>"hue"- launch the
716      * cluster with Hue installed.</p> </li> <li> <p>"spark" - launch the cluster with
717      * Apache Spark installed.</p> </li> <li> <p>"ganglia" - launch the cluster with
718      * the Ganglia Monitoring System installed.</p> </li> </ul>
719      */
WithNewSupportedProducts(const Aws::Vector<SupportedProductConfig> & value)720     inline RunJobFlowRequest& WithNewSupportedProducts(const Aws::Vector<SupportedProductConfig>& value) { SetNewSupportedProducts(value); return *this;}
721 
722     /**
723      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
724      * later, use Applications.</p>  <p>A list of strings that indicates
725      * third-party software to use with the job flow that accepts a user argument list.
726      * EMR accepts and forwards the argument list to the corresponding installation
727      * script as bootstrap action arguments. For more information, see "Launch a Job
728      * Flow on the MapR Distribution for Hadoop" in the <a
729      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
730      * EMR Developer Guide</a>. Supported values are:</p> <ul> <li> <p>"mapr-m3" -
731      * launch the cluster using MapR M3 Edition.</p> </li> <li> <p>"mapr-m5" - launch
732      * the cluster using MapR M5 Edition.</p> </li> <li> <p>"mapr" with the user
733      * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow
734      * using MapR M3 or M5 Edition respectively.</p> </li> <li> <p>"mapr-m7" - launch
735      * the cluster using MapR M7 Edition.</p> </li> <li> <p>"hunk" - launch the cluster
736      * with the Hunk Big Data Analytics Platform.</p> </li> <li> <p>"hue"- launch the
737      * cluster with Hue installed.</p> </li> <li> <p>"spark" - launch the cluster with
738      * Apache Spark installed.</p> </li> <li> <p>"ganglia" - launch the cluster with
739      * the Ganglia Monitoring System installed.</p> </li> </ul>
740      */
WithNewSupportedProducts(Aws::Vector<SupportedProductConfig> && value)741     inline RunJobFlowRequest& WithNewSupportedProducts(Aws::Vector<SupportedProductConfig>&& value) { SetNewSupportedProducts(std::move(value)); return *this;}
742 
743     /**
744      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
745      * later, use Applications.</p>  <p>A list of strings that indicates
746      * third-party software to use with the job flow that accepts a user argument list.
747      * EMR accepts and forwards the argument list to the corresponding installation
748      * script as bootstrap action arguments. For more information, see "Launch a Job
749      * Flow on the MapR Distribution for Hadoop" in the <a
750      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
751      * EMR Developer Guide</a>. Supported values are:</p> <ul> <li> <p>"mapr-m3" -
752      * launch the cluster using MapR M3 Edition.</p> </li> <li> <p>"mapr-m5" - launch
753      * the cluster using MapR M5 Edition.</p> </li> <li> <p>"mapr" with the user
754      * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow
755      * using MapR M3 or M5 Edition respectively.</p> </li> <li> <p>"mapr-m7" - launch
756      * the cluster using MapR M7 Edition.</p> </li> <li> <p>"hunk" - launch the cluster
757      * with the Hunk Big Data Analytics Platform.</p> </li> <li> <p>"hue"- launch the
758      * cluster with Hue installed.</p> </li> <li> <p>"spark" - launch the cluster with
759      * Apache Spark installed.</p> </li> <li> <p>"ganglia" - launch the cluster with
760      * the Ganglia Monitoring System installed.</p> </li> </ul>
761      */
AddNewSupportedProducts(const SupportedProductConfig & value)762     inline RunJobFlowRequest& AddNewSupportedProducts(const SupportedProductConfig& value) { m_newSupportedProductsHasBeenSet = true; m_newSupportedProducts.push_back(value); return *this; }
763 
764     /**
765      *  <p>For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and
766      * later, use Applications.</p>  <p>A list of strings that indicates
767      * third-party software to use with the job flow that accepts a user argument list.
768      * EMR accepts and forwards the argument list to the corresponding installation
769      * script as bootstrap action arguments. For more information, see "Launch a Job
770      * Flow on the MapR Distribution for Hadoop" in the <a
771      * href="https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf">Amazon
772      * EMR Developer Guide</a>. Supported values are:</p> <ul> <li> <p>"mapr-m3" -
773      * launch the cluster using MapR M3 Edition.</p> </li> <li> <p>"mapr-m5" - launch
774      * the cluster using MapR M5 Edition.</p> </li> <li> <p>"mapr" with the user
775      * arguments specifying "--edition,m3" or "--edition,m5" - launch the job flow
776      * using MapR M3 or M5 Edition respectively.</p> </li> <li> <p>"mapr-m7" - launch
777      * the cluster using MapR M7 Edition.</p> </li> <li> <p>"hunk" - launch the cluster
778      * with the Hunk Big Data Analytics Platform.</p> </li> <li> <p>"hue"- launch the
779      * cluster with Hue installed.</p> </li> <li> <p>"spark" - launch the cluster with
780      * Apache Spark installed.</p> </li> <li> <p>"ganglia" - launch the cluster with
781      * the Ganglia Monitoring System installed.</p> </li> </ul>
782      */
AddNewSupportedProducts(SupportedProductConfig && value)783     inline RunJobFlowRequest& AddNewSupportedProducts(SupportedProductConfig&& value) { m_newSupportedProductsHasBeenSet = true; m_newSupportedProducts.push_back(std::move(value)); return *this; }
784 
785 
786     /**
787      * <p>Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
788      * applications for Amazon EMR to install and configure when launching the cluster.
789      * For a list of applications available for each Amazon EMR release version, see
790      * the <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">Amazon EMR
791      * Release Guide</a>.</p>
792      */
GetApplications()793     inline const Aws::Vector<Application>& GetApplications() const{ return m_applications; }
794 
795     /**
796      * <p>Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
797      * applications for Amazon EMR to install and configure when launching the cluster.
798      * For a list of applications available for each Amazon EMR release version, see
799      * the <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">Amazon EMR
800      * Release Guide</a>.</p>
801      */
ApplicationsHasBeenSet()802     inline bool ApplicationsHasBeenSet() const { return m_applicationsHasBeenSet; }
803 
804     /**
805      * <p>Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
806      * applications for Amazon EMR to install and configure when launching the cluster.
807      * For a list of applications available for each Amazon EMR release version, see
808      * the <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">Amazon EMR
809      * Release Guide</a>.</p>
810      */
SetApplications(const Aws::Vector<Application> & value)811     inline void SetApplications(const Aws::Vector<Application>& value) { m_applicationsHasBeenSet = true; m_applications = value; }
812 
813     /**
814      * <p>Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
815      * applications for Amazon EMR to install and configure when launching the cluster.
816      * For a list of applications available for each Amazon EMR release version, see
817      * the <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">Amazon EMR
818      * Release Guide</a>.</p>
819      */
SetApplications(Aws::Vector<Application> && value)820     inline void SetApplications(Aws::Vector<Application>&& value) { m_applicationsHasBeenSet = true; m_applications = std::move(value); }
821 
822     /**
823      * <p>Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
824      * applications for Amazon EMR to install and configure when launching the cluster.
825      * For a list of applications available for each Amazon EMR release version, see
826      * the <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">Amazon EMR
827      * Release Guide</a>.</p>
828      */
WithApplications(const Aws::Vector<Application> & value)829     inline RunJobFlowRequest& WithApplications(const Aws::Vector<Application>& value) { SetApplications(value); return *this;}
830 
831     /**
832      * <p>Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
833      * applications for Amazon EMR to install and configure when launching the cluster.
834      * For a list of applications available for each Amazon EMR release version, see
835      * the <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">Amazon EMR
836      * Release Guide</a>.</p>
837      */
WithApplications(Aws::Vector<Application> && value)838     inline RunJobFlowRequest& WithApplications(Aws::Vector<Application>&& value) { SetApplications(std::move(value)); return *this;}
839 
840     /**
841      * <p>Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
842      * applications for Amazon EMR to install and configure when launching the cluster.
843      * For a list of applications available for each Amazon EMR release version, see
844      * the <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">Amazon EMR
845      * Release Guide</a>.</p>
846      */
AddApplications(const Application & value)847     inline RunJobFlowRequest& AddApplications(const Application& value) { m_applicationsHasBeenSet = true; m_applications.push_back(value); return *this; }
848 
849     /**
850      * <p>Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
851      * applications for Amazon EMR to install and configure when launching the cluster.
852      * For a list of applications available for each Amazon EMR release version, see
853      * the <a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/">Amazon EMR
854      * Release Guide</a>.</p>
855      */
AddApplications(Application && value)856     inline RunJobFlowRequest& AddApplications(Application&& value) { m_applicationsHasBeenSet = true; m_applications.push_back(std::move(value)); return *this; }
857 
858 
859     /**
860      * <p>For Amazon EMR releases 4.0 and later. The list of configurations supplied
861      * for the EMR cluster you are creating.</p>
862      */
GetConfigurations()863     inline const Aws::Vector<Configuration>& GetConfigurations() const{ return m_configurations; }
864 
865     /**
866      * <p>For Amazon EMR releases 4.0 and later. The list of configurations supplied
867      * for the EMR cluster you are creating.</p>
868      */
ConfigurationsHasBeenSet()869     inline bool ConfigurationsHasBeenSet() const { return m_configurationsHasBeenSet; }
870 
871     /**
872      * <p>For Amazon EMR releases 4.0 and later. The list of configurations supplied
873      * for the EMR cluster you are creating.</p>
874      */
SetConfigurations(const Aws::Vector<Configuration> & value)875     inline void SetConfigurations(const Aws::Vector<Configuration>& value) { m_configurationsHasBeenSet = true; m_configurations = value; }
876 
877     /**
878      * <p>For Amazon EMR releases 4.0 and later. The list of configurations supplied
879      * for the EMR cluster you are creating.</p>
880      */
SetConfigurations(Aws::Vector<Configuration> && value)881     inline void SetConfigurations(Aws::Vector<Configuration>&& value) { m_configurationsHasBeenSet = true; m_configurations = std::move(value); }
882 
883     /**
884      * <p>For Amazon EMR releases 4.0 and later. The list of configurations supplied
885      * for the EMR cluster you are creating.</p>
886      */
WithConfigurations(const Aws::Vector<Configuration> & value)887     inline RunJobFlowRequest& WithConfigurations(const Aws::Vector<Configuration>& value) { SetConfigurations(value); return *this;}
888 
889     /**
890      * <p>For Amazon EMR releases 4.0 and later. The list of configurations supplied
891      * for the EMR cluster you are creating.</p>
892      */
WithConfigurations(Aws::Vector<Configuration> && value)893     inline RunJobFlowRequest& WithConfigurations(Aws::Vector<Configuration>&& value) { SetConfigurations(std::move(value)); return *this;}
894 
895     /**
896      * <p>For Amazon EMR releases 4.0 and later. The list of configurations supplied
897      * for the EMR cluster you are creating.</p>
898      */
AddConfigurations(const Configuration & value)899     inline RunJobFlowRequest& AddConfigurations(const Configuration& value) { m_configurationsHasBeenSet = true; m_configurations.push_back(value); return *this; }
900 
901     /**
902      * <p>For Amazon EMR releases 4.0 and later. The list of configurations supplied
903      * for the EMR cluster you are creating.</p>
904      */
AddConfigurations(Configuration && value)905     inline RunJobFlowRequest& AddConfigurations(Configuration&& value) { m_configurationsHasBeenSet = true; m_configurations.push_back(std::move(value)); return *this; }
906 
907 
908     /**
909      * <p>Set this value to <code>true</code> so that IAM principals in the Amazon Web
910      * Services account associated with the cluster can perform EMR actions on the
911      * cluster that their IAM policies allow. This value defaults to <code>true</code>
912      * for clusters created using the EMR API or the CLI <a
913      * href="https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html">create-cluster</a>
914      * command.</p> <p>When set to <code>false</code>, only the IAM principal that
915      * created the cluster and the Amazon Web Services account root user can perform
916      * EMR actions for the cluster, regardless of the IAM permissions policies attached
917      * to other IAM principals. For more information, see <a
918      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users">Understanding
919      * the EMR Cluster VisibleToAllUsers Setting</a> in the <i>Amazon EMRManagement
920      * Guide</i>.</p>
921      */
GetVisibleToAllUsers()922     inline bool GetVisibleToAllUsers() const{ return m_visibleToAllUsers; }
923 
924     /**
925      * <p>Set this value to <code>true</code> so that IAM principals in the Amazon Web
926      * Services account associated with the cluster can perform EMR actions on the
927      * cluster that their IAM policies allow. This value defaults to <code>true</code>
928      * for clusters created using the EMR API or the CLI <a
929      * href="https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html">create-cluster</a>
930      * command.</p> <p>When set to <code>false</code>, only the IAM principal that
931      * created the cluster and the Amazon Web Services account root user can perform
932      * EMR actions for the cluster, regardless of the IAM permissions policies attached
933      * to other IAM principals. For more information, see <a
934      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users">Understanding
935      * the EMR Cluster VisibleToAllUsers Setting</a> in the <i>Amazon EMRManagement
936      * Guide</i>.</p>
937      */
VisibleToAllUsersHasBeenSet()938     inline bool VisibleToAllUsersHasBeenSet() const { return m_visibleToAllUsersHasBeenSet; }
939 
940     /**
941      * <p>Set this value to <code>true</code> so that IAM principals in the Amazon Web
942      * Services account associated with the cluster can perform EMR actions on the
943      * cluster that their IAM policies allow. This value defaults to <code>true</code>
944      * for clusters created using the EMR API or the CLI <a
945      * href="https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html">create-cluster</a>
946      * command.</p> <p>When set to <code>false</code>, only the IAM principal that
947      * created the cluster and the Amazon Web Services account root user can perform
948      * EMR actions for the cluster, regardless of the IAM permissions policies attached
949      * to other IAM principals. For more information, see <a
950      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users">Understanding
951      * the EMR Cluster VisibleToAllUsers Setting</a> in the <i>Amazon EMRManagement
952      * Guide</i>.</p>
953      */
SetVisibleToAllUsers(bool value)954     inline void SetVisibleToAllUsers(bool value) { m_visibleToAllUsersHasBeenSet = true; m_visibleToAllUsers = value; }
955 
956     /**
957      * <p>Set this value to <code>true</code> so that IAM principals in the Amazon Web
958      * Services account associated with the cluster can perform EMR actions on the
959      * cluster that their IAM policies allow. This value defaults to <code>true</code>
960      * for clusters created using the EMR API or the CLI <a
961      * href="https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html">create-cluster</a>
962      * command.</p> <p>When set to <code>false</code>, only the IAM principal that
963      * created the cluster and the Amazon Web Services account root user can perform
964      * EMR actions for the cluster, regardless of the IAM permissions policies attached
965      * to other IAM principals. For more information, see <a
966      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users">Understanding
967      * the EMR Cluster VisibleToAllUsers Setting</a> in the <i>Amazon EMRManagement
968      * Guide</i>.</p>
969      */
WithVisibleToAllUsers(bool value)970     inline RunJobFlowRequest& WithVisibleToAllUsers(bool value) { SetVisibleToAllUsers(value); return *this;}
971 
972 
973     /**
974      * <p>Also called instance profile and EC2 role. An IAM role for an EMR cluster.
975      * The EC2 instances of the cluster assume this role. The default role is
976      * <code>EMR_EC2_DefaultRole</code>. In order to use the default role, you must
977      * have already created it using the CLI or console.</p>
978      */
GetJobFlowRole()979     inline const Aws::String& GetJobFlowRole() const{ return m_jobFlowRole; }
980 
981     /**
982      * <p>Also called instance profile and EC2 role. An IAM role for an EMR cluster.
983      * The EC2 instances of the cluster assume this role. The default role is
984      * <code>EMR_EC2_DefaultRole</code>. In order to use the default role, you must
985      * have already created it using the CLI or console.</p>
986      */
JobFlowRoleHasBeenSet()987     inline bool JobFlowRoleHasBeenSet() const { return m_jobFlowRoleHasBeenSet; }
988 
989     /**
990      * <p>Also called instance profile and EC2 role. An IAM role for an EMR cluster.
991      * The EC2 instances of the cluster assume this role. The default role is
992      * <code>EMR_EC2_DefaultRole</code>. In order to use the default role, you must
993      * have already created it using the CLI or console.</p>
994      */
SetJobFlowRole(const Aws::String & value)995     inline void SetJobFlowRole(const Aws::String& value) { m_jobFlowRoleHasBeenSet = true; m_jobFlowRole = value; }
996 
997     /**
998      * <p>Also called instance profile and EC2 role. An IAM role for an EMR cluster.
999      * The EC2 instances of the cluster assume this role. The default role is
1000      * <code>EMR_EC2_DefaultRole</code>. In order to use the default role, you must
1001      * have already created it using the CLI or console.</p>
1002      */
SetJobFlowRole(Aws::String && value)1003     inline void SetJobFlowRole(Aws::String&& value) { m_jobFlowRoleHasBeenSet = true; m_jobFlowRole = std::move(value); }
1004 
1005     /**
1006      * <p>Also called instance profile and EC2 role. An IAM role for an EMR cluster.
1007      * The EC2 instances of the cluster assume this role. The default role is
1008      * <code>EMR_EC2_DefaultRole</code>. In order to use the default role, you must
1009      * have already created it using the CLI or console.</p>
1010      */
SetJobFlowRole(const char * value)1011     inline void SetJobFlowRole(const char* value) { m_jobFlowRoleHasBeenSet = true; m_jobFlowRole.assign(value); }
1012 
1013     /**
1014      * <p>Also called instance profile and EC2 role. An IAM role for an EMR cluster.
1015      * The EC2 instances of the cluster assume this role. The default role is
1016      * <code>EMR_EC2_DefaultRole</code>. In order to use the default role, you must
1017      * have already created it using the CLI or console.</p>
1018      */
WithJobFlowRole(const Aws::String & value)1019     inline RunJobFlowRequest& WithJobFlowRole(const Aws::String& value) { SetJobFlowRole(value); return *this;}
1020 
1021     /**
1022      * <p>Also called instance profile and EC2 role. An IAM role for an EMR cluster.
1023      * The EC2 instances of the cluster assume this role. The default role is
1024      * <code>EMR_EC2_DefaultRole</code>. In order to use the default role, you must
1025      * have already created it using the CLI or console.</p>
1026      */
WithJobFlowRole(Aws::String && value)1027     inline RunJobFlowRequest& WithJobFlowRole(Aws::String&& value) { SetJobFlowRole(std::move(value)); return *this;}
1028 
1029     /**
1030      * <p>Also called instance profile and EC2 role. An IAM role for an EMR cluster.
1031      * The EC2 instances of the cluster assume this role. The default role is
1032      * <code>EMR_EC2_DefaultRole</code>. In order to use the default role, you must
1033      * have already created it using the CLI or console.</p>
1034      */
WithJobFlowRole(const char * value)1035     inline RunJobFlowRequest& WithJobFlowRole(const char* value) { SetJobFlowRole(value); return *this;}
1036 
1037 
1038     /**
1039      * <p>The IAM role that Amazon EMR assumes in order to access Amazon Web Services
1040      * resources on your behalf.</p>
1041      */
GetServiceRole()1042     inline const Aws::String& GetServiceRole() const{ return m_serviceRole; }
1043 
1044     /**
1045      * <p>The IAM role that Amazon EMR assumes in order to access Amazon Web Services
1046      * resources on your behalf.</p>
1047      */
ServiceRoleHasBeenSet()1048     inline bool ServiceRoleHasBeenSet() const { return m_serviceRoleHasBeenSet; }
1049 
1050     /**
1051      * <p>The IAM role that Amazon EMR assumes in order to access Amazon Web Services
1052      * resources on your behalf.</p>
1053      */
SetServiceRole(const Aws::String & value)1054     inline void SetServiceRole(const Aws::String& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = value; }
1055 
1056     /**
1057      * <p>The IAM role that Amazon EMR assumes in order to access Amazon Web Services
1058      * resources on your behalf.</p>
1059      */
SetServiceRole(Aws::String && value)1060     inline void SetServiceRole(Aws::String&& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = std::move(value); }
1061 
1062     /**
1063      * <p>The IAM role that Amazon EMR assumes in order to access Amazon Web Services
1064      * resources on your behalf.</p>
1065      */
SetServiceRole(const char * value)1066     inline void SetServiceRole(const char* value) { m_serviceRoleHasBeenSet = true; m_serviceRole.assign(value); }
1067 
1068     /**
1069      * <p>The IAM role that Amazon EMR assumes in order to access Amazon Web Services
1070      * resources on your behalf.</p>
1071      */
WithServiceRole(const Aws::String & value)1072     inline RunJobFlowRequest& WithServiceRole(const Aws::String& value) { SetServiceRole(value); return *this;}
1073 
1074     /**
1075      * <p>The IAM role that Amazon EMR assumes in order to access Amazon Web Services
1076      * resources on your behalf.</p>
1077      */
WithServiceRole(Aws::String && value)1078     inline RunJobFlowRequest& WithServiceRole(Aws::String&& value) { SetServiceRole(std::move(value)); return *this;}
1079 
1080     /**
1081      * <p>The IAM role that Amazon EMR assumes in order to access Amazon Web Services
1082      * resources on your behalf.</p>
1083      */
WithServiceRole(const char * value)1084     inline RunJobFlowRequest& WithServiceRole(const char* value) { SetServiceRole(value); return *this;}
1085 
1086 
1087     /**
1088      * <p>A list of tags to associate with a cluster and propagate to Amazon EC2
1089      * instances.</p>
1090      */
GetTags()1091     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
1092 
1093     /**
1094      * <p>A list of tags to associate with a cluster and propagate to Amazon EC2
1095      * instances.</p>
1096      */
TagsHasBeenSet()1097     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
1098 
1099     /**
1100      * <p>A list of tags to associate with a cluster and propagate to Amazon EC2
1101      * instances.</p>
1102      */
SetTags(const Aws::Vector<Tag> & value)1103     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
1104 
1105     /**
1106      * <p>A list of tags to associate with a cluster and propagate to Amazon EC2
1107      * instances.</p>
1108      */
SetTags(Aws::Vector<Tag> && value)1109     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
1110 
1111     /**
1112      * <p>A list of tags to associate with a cluster and propagate to Amazon EC2
1113      * instances.</p>
1114      */
WithTags(const Aws::Vector<Tag> & value)1115     inline RunJobFlowRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
1116 
1117     /**
1118      * <p>A list of tags to associate with a cluster and propagate to Amazon EC2
1119      * instances.</p>
1120      */
WithTags(Aws::Vector<Tag> && value)1121     inline RunJobFlowRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
1122 
1123     /**
1124      * <p>A list of tags to associate with a cluster and propagate to Amazon EC2
1125      * instances.</p>
1126      */
AddTags(const Tag & value)1127     inline RunJobFlowRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
1128 
1129     /**
1130      * <p>A list of tags to associate with a cluster and propagate to Amazon EC2
1131      * instances.</p>
1132      */
AddTags(Tag && value)1133     inline RunJobFlowRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
1134 
1135 
1136     /**
1137      * <p>The name of a security configuration to apply to the cluster.</p>
1138      */
GetSecurityConfiguration()1139     inline const Aws::String& GetSecurityConfiguration() const{ return m_securityConfiguration; }
1140 
1141     /**
1142      * <p>The name of a security configuration to apply to the cluster.</p>
1143      */
SecurityConfigurationHasBeenSet()1144     inline bool SecurityConfigurationHasBeenSet() const { return m_securityConfigurationHasBeenSet; }
1145 
1146     /**
1147      * <p>The name of a security configuration to apply to the cluster.</p>
1148      */
SetSecurityConfiguration(const Aws::String & value)1149     inline void SetSecurityConfiguration(const Aws::String& value) { m_securityConfigurationHasBeenSet = true; m_securityConfiguration = value; }
1150 
1151     /**
1152      * <p>The name of a security configuration to apply to the cluster.</p>
1153      */
SetSecurityConfiguration(Aws::String && value)1154     inline void SetSecurityConfiguration(Aws::String&& value) { m_securityConfigurationHasBeenSet = true; m_securityConfiguration = std::move(value); }
1155 
1156     /**
1157      * <p>The name of a security configuration to apply to the cluster.</p>
1158      */
SetSecurityConfiguration(const char * value)1159     inline void SetSecurityConfiguration(const char* value) { m_securityConfigurationHasBeenSet = true; m_securityConfiguration.assign(value); }
1160 
1161     /**
1162      * <p>The name of a security configuration to apply to the cluster.</p>
1163      */
WithSecurityConfiguration(const Aws::String & value)1164     inline RunJobFlowRequest& WithSecurityConfiguration(const Aws::String& value) { SetSecurityConfiguration(value); return *this;}
1165 
1166     /**
1167      * <p>The name of a security configuration to apply to the cluster.</p>
1168      */
WithSecurityConfiguration(Aws::String && value)1169     inline RunJobFlowRequest& WithSecurityConfiguration(Aws::String&& value) { SetSecurityConfiguration(std::move(value)); return *this;}
1170 
1171     /**
1172      * <p>The name of a security configuration to apply to the cluster.</p>
1173      */
WithSecurityConfiguration(const char * value)1174     inline RunJobFlowRequest& WithSecurityConfiguration(const char* value) { SetSecurityConfiguration(value); return *this;}
1175 
1176 
1177     /**
1178      * <p>An IAM role for automatic scaling policies. The default role is
1179      * <code>EMR_AutoScaling_DefaultRole</code>. The IAM role provides permissions that
1180      * the automatic scaling feature requires to launch and terminate EC2 instances in
1181      * an instance group.</p>
1182      */
GetAutoScalingRole()1183     inline const Aws::String& GetAutoScalingRole() const{ return m_autoScalingRole; }
1184 
1185     /**
1186      * <p>An IAM role for automatic scaling policies. The default role is
1187      * <code>EMR_AutoScaling_DefaultRole</code>. The IAM role provides permissions that
1188      * the automatic scaling feature requires to launch and terminate EC2 instances in
1189      * an instance group.</p>
1190      */
AutoScalingRoleHasBeenSet()1191     inline bool AutoScalingRoleHasBeenSet() const { return m_autoScalingRoleHasBeenSet; }
1192 
1193     /**
1194      * <p>An IAM role for automatic scaling policies. The default role is
1195      * <code>EMR_AutoScaling_DefaultRole</code>. The IAM role provides permissions that
1196      * the automatic scaling feature requires to launch and terminate EC2 instances in
1197      * an instance group.</p>
1198      */
SetAutoScalingRole(const Aws::String & value)1199     inline void SetAutoScalingRole(const Aws::String& value) { m_autoScalingRoleHasBeenSet = true; m_autoScalingRole = value; }
1200 
1201     /**
1202      * <p>An IAM role for automatic scaling policies. The default role is
1203      * <code>EMR_AutoScaling_DefaultRole</code>. The IAM role provides permissions that
1204      * the automatic scaling feature requires to launch and terminate EC2 instances in
1205      * an instance group.</p>
1206      */
SetAutoScalingRole(Aws::String && value)1207     inline void SetAutoScalingRole(Aws::String&& value) { m_autoScalingRoleHasBeenSet = true; m_autoScalingRole = std::move(value); }
1208 
1209     /**
1210      * <p>An IAM role for automatic scaling policies. The default role is
1211      * <code>EMR_AutoScaling_DefaultRole</code>. The IAM role provides permissions that
1212      * the automatic scaling feature requires to launch and terminate EC2 instances in
1213      * an instance group.</p>
1214      */
SetAutoScalingRole(const char * value)1215     inline void SetAutoScalingRole(const char* value) { m_autoScalingRoleHasBeenSet = true; m_autoScalingRole.assign(value); }
1216 
1217     /**
1218      * <p>An IAM role for automatic scaling policies. The default role is
1219      * <code>EMR_AutoScaling_DefaultRole</code>. The IAM role provides permissions that
1220      * the automatic scaling feature requires to launch and terminate EC2 instances in
1221      * an instance group.</p>
1222      */
WithAutoScalingRole(const Aws::String & value)1223     inline RunJobFlowRequest& WithAutoScalingRole(const Aws::String& value) { SetAutoScalingRole(value); return *this;}
1224 
1225     /**
1226      * <p>An IAM role for automatic scaling policies. The default role is
1227      * <code>EMR_AutoScaling_DefaultRole</code>. The IAM role provides permissions that
1228      * the automatic scaling feature requires to launch and terminate EC2 instances in
1229      * an instance group.</p>
1230      */
WithAutoScalingRole(Aws::String && value)1231     inline RunJobFlowRequest& WithAutoScalingRole(Aws::String&& value) { SetAutoScalingRole(std::move(value)); return *this;}
1232 
1233     /**
1234      * <p>An IAM role for automatic scaling policies. The default role is
1235      * <code>EMR_AutoScaling_DefaultRole</code>. The IAM role provides permissions that
1236      * the automatic scaling feature requires to launch and terminate EC2 instances in
1237      * an instance group.</p>
1238      */
WithAutoScalingRole(const char * value)1239     inline RunJobFlowRequest& WithAutoScalingRole(const char* value) { SetAutoScalingRole(value); return *this;}
1240 
1241 
1242     /**
1243      * <p>Specifies the way that individual Amazon EC2 instances terminate when an
1244      * automatic scale-in activity occurs or an instance group is resized.
1245      * <code>TERMINATE_AT_INSTANCE_HOUR</code> indicates that Amazon EMR terminates
1246      * nodes at the instance-hour boundary, regardless of when the request to terminate
1247      * the instance was submitted. This option is only available with Amazon EMR 5.1.0
1248      * and later and is the default for clusters created using that version.
1249      * <code>TERMINATE_AT_TASK_COMPLETION</code> indicates that Amazon EMR adds nodes
1250      * to a deny list and drains tasks from nodes before terminating the Amazon EC2
1251      * instances, regardless of the instance-hour boundary. With either behavior,
1252      * Amazon EMR removes the least active nodes first and blocks instance termination
1253      * if it could lead to HDFS corruption. <code>TERMINATE_AT_TASK_COMPLETION</code>
1254      * available only in Amazon EMR version 4.1.0 and later, and is the default for
1255      * versions of Amazon EMR earlier than 5.1.0.</p>
1256      */
GetScaleDownBehavior()1257     inline const ScaleDownBehavior& GetScaleDownBehavior() const{ return m_scaleDownBehavior; }
1258 
1259     /**
1260      * <p>Specifies the way that individual Amazon EC2 instances terminate when an
1261      * automatic scale-in activity occurs or an instance group is resized.
1262      * <code>TERMINATE_AT_INSTANCE_HOUR</code> indicates that Amazon EMR terminates
1263      * nodes at the instance-hour boundary, regardless of when the request to terminate
1264      * the instance was submitted. This option is only available with Amazon EMR 5.1.0
1265      * and later and is the default for clusters created using that version.
1266      * <code>TERMINATE_AT_TASK_COMPLETION</code> indicates that Amazon EMR adds nodes
1267      * to a deny list and drains tasks from nodes before terminating the Amazon EC2
1268      * instances, regardless of the instance-hour boundary. With either behavior,
1269      * Amazon EMR removes the least active nodes first and blocks instance termination
1270      * if it could lead to HDFS corruption. <code>TERMINATE_AT_TASK_COMPLETION</code>
1271      * available only in Amazon EMR version 4.1.0 and later, and is the default for
1272      * versions of Amazon EMR earlier than 5.1.0.</p>
1273      */
ScaleDownBehaviorHasBeenSet()1274     inline bool ScaleDownBehaviorHasBeenSet() const { return m_scaleDownBehaviorHasBeenSet; }
1275 
1276     /**
1277      * <p>Specifies the way that individual Amazon EC2 instances terminate when an
1278      * automatic scale-in activity occurs or an instance group is resized.
1279      * <code>TERMINATE_AT_INSTANCE_HOUR</code> indicates that Amazon EMR terminates
1280      * nodes at the instance-hour boundary, regardless of when the request to terminate
1281      * the instance was submitted. This option is only available with Amazon EMR 5.1.0
1282      * and later and is the default for clusters created using that version.
1283      * <code>TERMINATE_AT_TASK_COMPLETION</code> indicates that Amazon EMR adds nodes
1284      * to a deny list and drains tasks from nodes before terminating the Amazon EC2
1285      * instances, regardless of the instance-hour boundary. With either behavior,
1286      * Amazon EMR removes the least active nodes first and blocks instance termination
1287      * if it could lead to HDFS corruption. <code>TERMINATE_AT_TASK_COMPLETION</code>
1288      * available only in Amazon EMR version 4.1.0 and later, and is the default for
1289      * versions of Amazon EMR earlier than 5.1.0.</p>
1290      */
SetScaleDownBehavior(const ScaleDownBehavior & value)1291     inline void SetScaleDownBehavior(const ScaleDownBehavior& value) { m_scaleDownBehaviorHasBeenSet = true; m_scaleDownBehavior = value; }
1292 
1293     /**
1294      * <p>Specifies the way that individual Amazon EC2 instances terminate when an
1295      * automatic scale-in activity occurs or an instance group is resized.
1296      * <code>TERMINATE_AT_INSTANCE_HOUR</code> indicates that Amazon EMR terminates
1297      * nodes at the instance-hour boundary, regardless of when the request to terminate
1298      * the instance was submitted. This option is only available with Amazon EMR 5.1.0
1299      * and later and is the default for clusters created using that version.
1300      * <code>TERMINATE_AT_TASK_COMPLETION</code> indicates that Amazon EMR adds nodes
1301      * to a deny list and drains tasks from nodes before terminating the Amazon EC2
1302      * instances, regardless of the instance-hour boundary. With either behavior,
1303      * Amazon EMR removes the least active nodes first and blocks instance termination
1304      * if it could lead to HDFS corruption. <code>TERMINATE_AT_TASK_COMPLETION</code>
1305      * available only in Amazon EMR version 4.1.0 and later, and is the default for
1306      * versions of Amazon EMR earlier than 5.1.0.</p>
1307      */
SetScaleDownBehavior(ScaleDownBehavior && value)1308     inline void SetScaleDownBehavior(ScaleDownBehavior&& value) { m_scaleDownBehaviorHasBeenSet = true; m_scaleDownBehavior = std::move(value); }
1309 
1310     /**
1311      * <p>Specifies the way that individual Amazon EC2 instances terminate when an
1312      * automatic scale-in activity occurs or an instance group is resized.
1313      * <code>TERMINATE_AT_INSTANCE_HOUR</code> indicates that Amazon EMR terminates
1314      * nodes at the instance-hour boundary, regardless of when the request to terminate
1315      * the instance was submitted. This option is only available with Amazon EMR 5.1.0
1316      * and later and is the default for clusters created using that version.
1317      * <code>TERMINATE_AT_TASK_COMPLETION</code> indicates that Amazon EMR adds nodes
1318      * to a deny list and drains tasks from nodes before terminating the Amazon EC2
1319      * instances, regardless of the instance-hour boundary. With either behavior,
1320      * Amazon EMR removes the least active nodes first and blocks instance termination
1321      * if it could lead to HDFS corruption. <code>TERMINATE_AT_TASK_COMPLETION</code>
1322      * available only in Amazon EMR version 4.1.0 and later, and is the default for
1323      * versions of Amazon EMR earlier than 5.1.0.</p>
1324      */
WithScaleDownBehavior(const ScaleDownBehavior & value)1325     inline RunJobFlowRequest& WithScaleDownBehavior(const ScaleDownBehavior& value) { SetScaleDownBehavior(value); return *this;}
1326 
1327     /**
1328      * <p>Specifies the way that individual Amazon EC2 instances terminate when an
1329      * automatic scale-in activity occurs or an instance group is resized.
1330      * <code>TERMINATE_AT_INSTANCE_HOUR</code> indicates that Amazon EMR terminates
1331      * nodes at the instance-hour boundary, regardless of when the request to terminate
1332      * the instance was submitted. This option is only available with Amazon EMR 5.1.0
1333      * and later and is the default for clusters created using that version.
1334      * <code>TERMINATE_AT_TASK_COMPLETION</code> indicates that Amazon EMR adds nodes
1335      * to a deny list and drains tasks from nodes before terminating the Amazon EC2
1336      * instances, regardless of the instance-hour boundary. With either behavior,
1337      * Amazon EMR removes the least active nodes first and blocks instance termination
1338      * if it could lead to HDFS corruption. <code>TERMINATE_AT_TASK_COMPLETION</code>
1339      * available only in Amazon EMR version 4.1.0 and later, and is the default for
1340      * versions of Amazon EMR earlier than 5.1.0.</p>
1341      */
WithScaleDownBehavior(ScaleDownBehavior && value)1342     inline RunJobFlowRequest& WithScaleDownBehavior(ScaleDownBehavior&& value) { SetScaleDownBehavior(std::move(value)); return *this;}
1343 
1344 
1345     /**
1346      * <p>Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
1347      * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it
1348      * launches cluster EC2 instances. For more information about custom AMIs in Amazon
1349      * EMR, see <a
1350      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html">Using
1351      * a Custom AMI</a> in the <i>Amazon EMR Management Guide</i>. If omitted, the
1352      * cluster uses the base Linux AMI for the <code>ReleaseLabel</code> specified. For
1353      * Amazon EMR versions 2.x and 3.x, use <code>AmiVersion</code> instead.</p> <p>For
1354      * information about creating a custom AMI, see <a
1355      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
1356      * an Amazon EBS-Backed Linux AMI</a> in the <i>Amazon Elastic Compute Cloud User
1357      * Guide for Linux Instances</i>. For information about finding an AMI ID, see <a
1358      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html">Finding
1359      * a Linux AMI</a>. </p>
1360      */
GetCustomAmiId()1361     inline const Aws::String& GetCustomAmiId() const{ return m_customAmiId; }
1362 
1363     /**
1364      * <p>Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
1365      * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it
1366      * launches cluster EC2 instances. For more information about custom AMIs in Amazon
1367      * EMR, see <a
1368      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html">Using
1369      * a Custom AMI</a> in the <i>Amazon EMR Management Guide</i>. If omitted, the
1370      * cluster uses the base Linux AMI for the <code>ReleaseLabel</code> specified. For
1371      * Amazon EMR versions 2.x and 3.x, use <code>AmiVersion</code> instead.</p> <p>For
1372      * information about creating a custom AMI, see <a
1373      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
1374      * an Amazon EBS-Backed Linux AMI</a> in the <i>Amazon Elastic Compute Cloud User
1375      * Guide for Linux Instances</i>. For information about finding an AMI ID, see <a
1376      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html">Finding
1377      * a Linux AMI</a>. </p>
1378      */
CustomAmiIdHasBeenSet()1379     inline bool CustomAmiIdHasBeenSet() const { return m_customAmiIdHasBeenSet; }
1380 
1381     /**
1382      * <p>Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
1383      * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it
1384      * launches cluster EC2 instances. For more information about custom AMIs in Amazon
1385      * EMR, see <a
1386      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html">Using
1387      * a Custom AMI</a> in the <i>Amazon EMR Management Guide</i>. If omitted, the
1388      * cluster uses the base Linux AMI for the <code>ReleaseLabel</code> specified. For
1389      * Amazon EMR versions 2.x and 3.x, use <code>AmiVersion</code> instead.</p> <p>For
1390      * information about creating a custom AMI, see <a
1391      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
1392      * an Amazon EBS-Backed Linux AMI</a> in the <i>Amazon Elastic Compute Cloud User
1393      * Guide for Linux Instances</i>. For information about finding an AMI ID, see <a
1394      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html">Finding
1395      * a Linux AMI</a>. </p>
1396      */
SetCustomAmiId(const Aws::String & value)1397     inline void SetCustomAmiId(const Aws::String& value) { m_customAmiIdHasBeenSet = true; m_customAmiId = value; }
1398 
1399     /**
1400      * <p>Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
1401      * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it
1402      * launches cluster EC2 instances. For more information about custom AMIs in Amazon
1403      * EMR, see <a
1404      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html">Using
1405      * a Custom AMI</a> in the <i>Amazon EMR Management Guide</i>. If omitted, the
1406      * cluster uses the base Linux AMI for the <code>ReleaseLabel</code> specified. For
1407      * Amazon EMR versions 2.x and 3.x, use <code>AmiVersion</code> instead.</p> <p>For
1408      * information about creating a custom AMI, see <a
1409      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
1410      * an Amazon EBS-Backed Linux AMI</a> in the <i>Amazon Elastic Compute Cloud User
1411      * Guide for Linux Instances</i>. For information about finding an AMI ID, see <a
1412      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html">Finding
1413      * a Linux AMI</a>. </p>
1414      */
SetCustomAmiId(Aws::String && value)1415     inline void SetCustomAmiId(Aws::String&& value) { m_customAmiIdHasBeenSet = true; m_customAmiId = std::move(value); }
1416 
1417     /**
1418      * <p>Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
1419      * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it
1420      * launches cluster EC2 instances. For more information about custom AMIs in Amazon
1421      * EMR, see <a
1422      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html">Using
1423      * a Custom AMI</a> in the <i>Amazon EMR Management Guide</i>. If omitted, the
1424      * cluster uses the base Linux AMI for the <code>ReleaseLabel</code> specified. For
1425      * Amazon EMR versions 2.x and 3.x, use <code>AmiVersion</code> instead.</p> <p>For
1426      * information about creating a custom AMI, see <a
1427      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
1428      * an Amazon EBS-Backed Linux AMI</a> in the <i>Amazon Elastic Compute Cloud User
1429      * Guide for Linux Instances</i>. For information about finding an AMI ID, see <a
1430      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html">Finding
1431      * a Linux AMI</a>. </p>
1432      */
SetCustomAmiId(const char * value)1433     inline void SetCustomAmiId(const char* value) { m_customAmiIdHasBeenSet = true; m_customAmiId.assign(value); }
1434 
1435     /**
1436      * <p>Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
1437      * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it
1438      * launches cluster EC2 instances. For more information about custom AMIs in Amazon
1439      * EMR, see <a
1440      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html">Using
1441      * a Custom AMI</a> in the <i>Amazon EMR Management Guide</i>. If omitted, the
1442      * cluster uses the base Linux AMI for the <code>ReleaseLabel</code> specified. For
1443      * Amazon EMR versions 2.x and 3.x, use <code>AmiVersion</code> instead.</p> <p>For
1444      * information about creating a custom AMI, see <a
1445      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
1446      * an Amazon EBS-Backed Linux AMI</a> in the <i>Amazon Elastic Compute Cloud User
1447      * Guide for Linux Instances</i>. For information about finding an AMI ID, see <a
1448      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html">Finding
1449      * a Linux AMI</a>. </p>
1450      */
WithCustomAmiId(const Aws::String & value)1451     inline RunJobFlowRequest& WithCustomAmiId(const Aws::String& value) { SetCustomAmiId(value); return *this;}
1452 
1453     /**
1454      * <p>Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
1455      * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it
1456      * launches cluster EC2 instances. For more information about custom AMIs in Amazon
1457      * EMR, see <a
1458      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html">Using
1459      * a Custom AMI</a> in the <i>Amazon EMR Management Guide</i>. If omitted, the
1460      * cluster uses the base Linux AMI for the <code>ReleaseLabel</code> specified. For
1461      * Amazon EMR versions 2.x and 3.x, use <code>AmiVersion</code> instead.</p> <p>For
1462      * information about creating a custom AMI, see <a
1463      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
1464      * an Amazon EBS-Backed Linux AMI</a> in the <i>Amazon Elastic Compute Cloud User
1465      * Guide for Linux Instances</i>. For information about finding an AMI ID, see <a
1466      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html">Finding
1467      * a Linux AMI</a>. </p>
1468      */
WithCustomAmiId(Aws::String && value)1469     inline RunJobFlowRequest& WithCustomAmiId(Aws::String&& value) { SetCustomAmiId(std::move(value)); return *this;}
1470 
1471     /**
1472      * <p>Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
1473      * Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when it
1474      * launches cluster EC2 instances. For more information about custom AMIs in Amazon
1475      * EMR, see <a
1476      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html">Using
1477      * a Custom AMI</a> in the <i>Amazon EMR Management Guide</i>. If omitted, the
1478      * cluster uses the base Linux AMI for the <code>ReleaseLabel</code> specified. For
1479      * Amazon EMR versions 2.x and 3.x, use <code>AmiVersion</code> instead.</p> <p>For
1480      * information about creating a custom AMI, see <a
1481      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
1482      * an Amazon EBS-Backed Linux AMI</a> in the <i>Amazon Elastic Compute Cloud User
1483      * Guide for Linux Instances</i>. For information about finding an AMI ID, see <a
1484      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html">Finding
1485      * a Linux AMI</a>. </p>
1486      */
WithCustomAmiId(const char * value)1487     inline RunJobFlowRequest& WithCustomAmiId(const char* value) { SetCustomAmiId(value); return *this;}
1488 
1489 
1490     /**
1491      * <p>The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
1492      * is used for each EC2 instance. Available in Amazon EMR version 4.x and
1493      * later.</p>
1494      */
GetEbsRootVolumeSize()1495     inline int GetEbsRootVolumeSize() const{ return m_ebsRootVolumeSize; }
1496 
1497     /**
1498      * <p>The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
1499      * is used for each EC2 instance. Available in Amazon EMR version 4.x and
1500      * later.</p>
1501      */
EbsRootVolumeSizeHasBeenSet()1502     inline bool EbsRootVolumeSizeHasBeenSet() const { return m_ebsRootVolumeSizeHasBeenSet; }
1503 
1504     /**
1505      * <p>The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
1506      * is used for each EC2 instance. Available in Amazon EMR version 4.x and
1507      * later.</p>
1508      */
SetEbsRootVolumeSize(int value)1509     inline void SetEbsRootVolumeSize(int value) { m_ebsRootVolumeSizeHasBeenSet = true; m_ebsRootVolumeSize = value; }
1510 
1511     /**
1512      * <p>The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
1513      * is used for each EC2 instance. Available in Amazon EMR version 4.x and
1514      * later.</p>
1515      */
WithEbsRootVolumeSize(int value)1516     inline RunJobFlowRequest& WithEbsRootVolumeSize(int value) { SetEbsRootVolumeSize(value); return *this;}
1517 
1518 
1519     /**
1520      * <p>Applies only when <code>CustomAmiID</code> is used. Specifies which updates
1521      * from the Amazon Linux AMI package repositories to apply automatically when the
1522      * instance boots using the AMI. If omitted, the default is <code>SECURITY</code>,
1523      * which indicates that only security updates are applied. If <code>NONE</code> is
1524      * specified, no updates are applied, and all updates must be applied manually.</p>
1525      */
GetRepoUpgradeOnBoot()1526     inline const RepoUpgradeOnBoot& GetRepoUpgradeOnBoot() const{ return m_repoUpgradeOnBoot; }
1527 
1528     /**
1529      * <p>Applies only when <code>CustomAmiID</code> is used. Specifies which updates
1530      * from the Amazon Linux AMI package repositories to apply automatically when the
1531      * instance boots using the AMI. If omitted, the default is <code>SECURITY</code>,
1532      * which indicates that only security updates are applied. If <code>NONE</code> is
1533      * specified, no updates are applied, and all updates must be applied manually.</p>
1534      */
RepoUpgradeOnBootHasBeenSet()1535     inline bool RepoUpgradeOnBootHasBeenSet() const { return m_repoUpgradeOnBootHasBeenSet; }
1536 
1537     /**
1538      * <p>Applies only when <code>CustomAmiID</code> is used. Specifies which updates
1539      * from the Amazon Linux AMI package repositories to apply automatically when the
1540      * instance boots using the AMI. If omitted, the default is <code>SECURITY</code>,
1541      * which indicates that only security updates are applied. If <code>NONE</code> is
1542      * specified, no updates are applied, and all updates must be applied manually.</p>
1543      */
SetRepoUpgradeOnBoot(const RepoUpgradeOnBoot & value)1544     inline void SetRepoUpgradeOnBoot(const RepoUpgradeOnBoot& value) { m_repoUpgradeOnBootHasBeenSet = true; m_repoUpgradeOnBoot = value; }
1545 
1546     /**
1547      * <p>Applies only when <code>CustomAmiID</code> is used. Specifies which updates
1548      * from the Amazon Linux AMI package repositories to apply automatically when the
1549      * instance boots using the AMI. If omitted, the default is <code>SECURITY</code>,
1550      * which indicates that only security updates are applied. If <code>NONE</code> is
1551      * specified, no updates are applied, and all updates must be applied manually.</p>
1552      */
SetRepoUpgradeOnBoot(RepoUpgradeOnBoot && value)1553     inline void SetRepoUpgradeOnBoot(RepoUpgradeOnBoot&& value) { m_repoUpgradeOnBootHasBeenSet = true; m_repoUpgradeOnBoot = std::move(value); }
1554 
1555     /**
1556      * <p>Applies only when <code>CustomAmiID</code> is used. Specifies which updates
1557      * from the Amazon Linux AMI package repositories to apply automatically when the
1558      * instance boots using the AMI. If omitted, the default is <code>SECURITY</code>,
1559      * which indicates that only security updates are applied. If <code>NONE</code> is
1560      * specified, no updates are applied, and all updates must be applied manually.</p>
1561      */
WithRepoUpgradeOnBoot(const RepoUpgradeOnBoot & value)1562     inline RunJobFlowRequest& WithRepoUpgradeOnBoot(const RepoUpgradeOnBoot& value) { SetRepoUpgradeOnBoot(value); return *this;}
1563 
1564     /**
1565      * <p>Applies only when <code>CustomAmiID</code> is used. Specifies which updates
1566      * from the Amazon Linux AMI package repositories to apply automatically when the
1567      * instance boots using the AMI. If omitted, the default is <code>SECURITY</code>,
1568      * which indicates that only security updates are applied. If <code>NONE</code> is
1569      * specified, no updates are applied, and all updates must be applied manually.</p>
1570      */
WithRepoUpgradeOnBoot(RepoUpgradeOnBoot && value)1571     inline RunJobFlowRequest& WithRepoUpgradeOnBoot(RepoUpgradeOnBoot&& value) { SetRepoUpgradeOnBoot(std::move(value)); return *this;}
1572 
1573 
1574     /**
1575      * <p>Attributes for Kerberos configuration when Kerberos authentication is enabled
1576      * using a security configuration. For more information see <a
1577      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html">Use
1578      * Kerberos Authentication</a> in the <i>Amazon EMR Management Guide</i>.</p>
1579      */
GetKerberosAttributes()1580     inline const KerberosAttributes& GetKerberosAttributes() const{ return m_kerberosAttributes; }
1581 
1582     /**
1583      * <p>Attributes for Kerberos configuration when Kerberos authentication is enabled
1584      * using a security configuration. For more information see <a
1585      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html">Use
1586      * Kerberos Authentication</a> in the <i>Amazon EMR Management Guide</i>.</p>
1587      */
KerberosAttributesHasBeenSet()1588     inline bool KerberosAttributesHasBeenSet() const { return m_kerberosAttributesHasBeenSet; }
1589 
1590     /**
1591      * <p>Attributes for Kerberos configuration when Kerberos authentication is enabled
1592      * using a security configuration. For more information see <a
1593      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html">Use
1594      * Kerberos Authentication</a> in the <i>Amazon EMR Management Guide</i>.</p>
1595      */
SetKerberosAttributes(const KerberosAttributes & value)1596     inline void SetKerberosAttributes(const KerberosAttributes& value) { m_kerberosAttributesHasBeenSet = true; m_kerberosAttributes = value; }
1597 
1598     /**
1599      * <p>Attributes for Kerberos configuration when Kerberos authentication is enabled
1600      * using a security configuration. For more information see <a
1601      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html">Use
1602      * Kerberos Authentication</a> in the <i>Amazon EMR Management Guide</i>.</p>
1603      */
SetKerberosAttributes(KerberosAttributes && value)1604     inline void SetKerberosAttributes(KerberosAttributes&& value) { m_kerberosAttributesHasBeenSet = true; m_kerberosAttributes = std::move(value); }
1605 
1606     /**
1607      * <p>Attributes for Kerberos configuration when Kerberos authentication is enabled
1608      * using a security configuration. For more information see <a
1609      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html">Use
1610      * Kerberos Authentication</a> in the <i>Amazon EMR Management Guide</i>.</p>
1611      */
WithKerberosAttributes(const KerberosAttributes & value)1612     inline RunJobFlowRequest& WithKerberosAttributes(const KerberosAttributes& value) { SetKerberosAttributes(value); return *this;}
1613 
1614     /**
1615      * <p>Attributes for Kerberos configuration when Kerberos authentication is enabled
1616      * using a security configuration. For more information see <a
1617      * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html">Use
1618      * Kerberos Authentication</a> in the <i>Amazon EMR Management Guide</i>.</p>
1619      */
WithKerberosAttributes(KerberosAttributes && value)1620     inline RunJobFlowRequest& WithKerberosAttributes(KerberosAttributes&& value) { SetKerberosAttributes(std::move(value)); return *this;}
1621 
1622 
1623     /**
1624      * <p>Specifies the number of steps that can be executed concurrently. The default
1625      * value is <code>1</code>. The maximum value is <code>256</code>.</p>
1626      */
GetStepConcurrencyLevel()1627     inline int GetStepConcurrencyLevel() const{ return m_stepConcurrencyLevel; }
1628 
1629     /**
1630      * <p>Specifies the number of steps that can be executed concurrently. The default
1631      * value is <code>1</code>. The maximum value is <code>256</code>.</p>
1632      */
StepConcurrencyLevelHasBeenSet()1633     inline bool StepConcurrencyLevelHasBeenSet() const { return m_stepConcurrencyLevelHasBeenSet; }
1634 
1635     /**
1636      * <p>Specifies the number of steps that can be executed concurrently. The default
1637      * value is <code>1</code>. The maximum value is <code>256</code>.</p>
1638      */
SetStepConcurrencyLevel(int value)1639     inline void SetStepConcurrencyLevel(int value) { m_stepConcurrencyLevelHasBeenSet = true; m_stepConcurrencyLevel = value; }
1640 
1641     /**
1642      * <p>Specifies the number of steps that can be executed concurrently. The default
1643      * value is <code>1</code>. The maximum value is <code>256</code>.</p>
1644      */
WithStepConcurrencyLevel(int value)1645     inline RunJobFlowRequest& WithStepConcurrencyLevel(int value) { SetStepConcurrencyLevel(value); return *this;}
1646 
1647 
1648     /**
1649      * <p> The specified managed scaling policy for an Amazon EMR cluster. </p>
1650      */
GetManagedScalingPolicy()1651     inline const ManagedScalingPolicy& GetManagedScalingPolicy() const{ return m_managedScalingPolicy; }
1652 
1653     /**
1654      * <p> The specified managed scaling policy for an Amazon EMR cluster. </p>
1655      */
ManagedScalingPolicyHasBeenSet()1656     inline bool ManagedScalingPolicyHasBeenSet() const { return m_managedScalingPolicyHasBeenSet; }
1657 
1658     /**
1659      * <p> The specified managed scaling policy for an Amazon EMR cluster. </p>
1660      */
SetManagedScalingPolicy(const ManagedScalingPolicy & value)1661     inline void SetManagedScalingPolicy(const ManagedScalingPolicy& value) { m_managedScalingPolicyHasBeenSet = true; m_managedScalingPolicy = value; }
1662 
1663     /**
1664      * <p> The specified managed scaling policy for an Amazon EMR cluster. </p>
1665      */
SetManagedScalingPolicy(ManagedScalingPolicy && value)1666     inline void SetManagedScalingPolicy(ManagedScalingPolicy&& value) { m_managedScalingPolicyHasBeenSet = true; m_managedScalingPolicy = std::move(value); }
1667 
1668     /**
1669      * <p> The specified managed scaling policy for an Amazon EMR cluster. </p>
1670      */
WithManagedScalingPolicy(const ManagedScalingPolicy & value)1671     inline RunJobFlowRequest& WithManagedScalingPolicy(const ManagedScalingPolicy& value) { SetManagedScalingPolicy(value); return *this;}
1672 
1673     /**
1674      * <p> The specified managed scaling policy for an Amazon EMR cluster. </p>
1675      */
WithManagedScalingPolicy(ManagedScalingPolicy && value)1676     inline RunJobFlowRequest& WithManagedScalingPolicy(ManagedScalingPolicy&& value) { SetManagedScalingPolicy(std::move(value)); return *this;}
1677 
1678 
1679     /**
1680      * <p>The specified placement group configuration for an Amazon EMR cluster.</p>
1681      */
GetPlacementGroupConfigs()1682     inline const Aws::Vector<PlacementGroupConfig>& GetPlacementGroupConfigs() const{ return m_placementGroupConfigs; }
1683 
1684     /**
1685      * <p>The specified placement group configuration for an Amazon EMR cluster.</p>
1686      */
PlacementGroupConfigsHasBeenSet()1687     inline bool PlacementGroupConfigsHasBeenSet() const { return m_placementGroupConfigsHasBeenSet; }
1688 
1689     /**
1690      * <p>The specified placement group configuration for an Amazon EMR cluster.</p>
1691      */
SetPlacementGroupConfigs(const Aws::Vector<PlacementGroupConfig> & value)1692     inline void SetPlacementGroupConfigs(const Aws::Vector<PlacementGroupConfig>& value) { m_placementGroupConfigsHasBeenSet = true; m_placementGroupConfigs = value; }
1693 
1694     /**
1695      * <p>The specified placement group configuration for an Amazon EMR cluster.</p>
1696      */
SetPlacementGroupConfigs(Aws::Vector<PlacementGroupConfig> && value)1697     inline void SetPlacementGroupConfigs(Aws::Vector<PlacementGroupConfig>&& value) { m_placementGroupConfigsHasBeenSet = true; m_placementGroupConfigs = std::move(value); }
1698 
1699     /**
1700      * <p>The specified placement group configuration for an Amazon EMR cluster.</p>
1701      */
WithPlacementGroupConfigs(const Aws::Vector<PlacementGroupConfig> & value)1702     inline RunJobFlowRequest& WithPlacementGroupConfigs(const Aws::Vector<PlacementGroupConfig>& value) { SetPlacementGroupConfigs(value); return *this;}
1703 
1704     /**
1705      * <p>The specified placement group configuration for an Amazon EMR cluster.</p>
1706      */
WithPlacementGroupConfigs(Aws::Vector<PlacementGroupConfig> && value)1707     inline RunJobFlowRequest& WithPlacementGroupConfigs(Aws::Vector<PlacementGroupConfig>&& value) { SetPlacementGroupConfigs(std::move(value)); return *this;}
1708 
1709     /**
1710      * <p>The specified placement group configuration for an Amazon EMR cluster.</p>
1711      */
AddPlacementGroupConfigs(const PlacementGroupConfig & value)1712     inline RunJobFlowRequest& AddPlacementGroupConfigs(const PlacementGroupConfig& value) { m_placementGroupConfigsHasBeenSet = true; m_placementGroupConfigs.push_back(value); return *this; }
1713 
1714     /**
1715      * <p>The specified placement group configuration for an Amazon EMR cluster.</p>
1716      */
AddPlacementGroupConfigs(PlacementGroupConfig && value)1717     inline RunJobFlowRequest& AddPlacementGroupConfigs(PlacementGroupConfig&& value) { m_placementGroupConfigsHasBeenSet = true; m_placementGroupConfigs.push_back(std::move(value)); return *this; }
1718 
1719 
1720 
GetAutoTerminationPolicy()1721     inline const AutoTerminationPolicy& GetAutoTerminationPolicy() const{ return m_autoTerminationPolicy; }
1722 
1723 
AutoTerminationPolicyHasBeenSet()1724     inline bool AutoTerminationPolicyHasBeenSet() const { return m_autoTerminationPolicyHasBeenSet; }
1725 
1726 
SetAutoTerminationPolicy(const AutoTerminationPolicy & value)1727     inline void SetAutoTerminationPolicy(const AutoTerminationPolicy& value) { m_autoTerminationPolicyHasBeenSet = true; m_autoTerminationPolicy = value; }
1728 
1729 
SetAutoTerminationPolicy(AutoTerminationPolicy && value)1730     inline void SetAutoTerminationPolicy(AutoTerminationPolicy&& value) { m_autoTerminationPolicyHasBeenSet = true; m_autoTerminationPolicy = std::move(value); }
1731 
1732 
WithAutoTerminationPolicy(const AutoTerminationPolicy & value)1733     inline RunJobFlowRequest& WithAutoTerminationPolicy(const AutoTerminationPolicy& value) { SetAutoTerminationPolicy(value); return *this;}
1734 
1735 
WithAutoTerminationPolicy(AutoTerminationPolicy && value)1736     inline RunJobFlowRequest& WithAutoTerminationPolicy(AutoTerminationPolicy&& value) { SetAutoTerminationPolicy(std::move(value)); return *this;}
1737 
1738   private:
1739 
1740     Aws::String m_name;
1741     bool m_nameHasBeenSet;
1742 
1743     Aws::String m_logUri;
1744     bool m_logUriHasBeenSet;
1745 
1746     Aws::String m_logEncryptionKmsKeyId;
1747     bool m_logEncryptionKmsKeyIdHasBeenSet;
1748 
1749     Aws::String m_additionalInfo;
1750     bool m_additionalInfoHasBeenSet;
1751 
1752     Aws::String m_amiVersion;
1753     bool m_amiVersionHasBeenSet;
1754 
1755     Aws::String m_releaseLabel;
1756     bool m_releaseLabelHasBeenSet;
1757 
1758     JobFlowInstancesConfig m_instances;
1759     bool m_instancesHasBeenSet;
1760 
1761     Aws::Vector<StepConfig> m_steps;
1762     bool m_stepsHasBeenSet;
1763 
1764     Aws::Vector<BootstrapActionConfig> m_bootstrapActions;
1765     bool m_bootstrapActionsHasBeenSet;
1766 
1767     Aws::Vector<Aws::String> m_supportedProducts;
1768     bool m_supportedProductsHasBeenSet;
1769 
1770     Aws::Vector<SupportedProductConfig> m_newSupportedProducts;
1771     bool m_newSupportedProductsHasBeenSet;
1772 
1773     Aws::Vector<Application> m_applications;
1774     bool m_applicationsHasBeenSet;
1775 
1776     Aws::Vector<Configuration> m_configurations;
1777     bool m_configurationsHasBeenSet;
1778 
1779     bool m_visibleToAllUsers;
1780     bool m_visibleToAllUsersHasBeenSet;
1781 
1782     Aws::String m_jobFlowRole;
1783     bool m_jobFlowRoleHasBeenSet;
1784 
1785     Aws::String m_serviceRole;
1786     bool m_serviceRoleHasBeenSet;
1787 
1788     Aws::Vector<Tag> m_tags;
1789     bool m_tagsHasBeenSet;
1790 
1791     Aws::String m_securityConfiguration;
1792     bool m_securityConfigurationHasBeenSet;
1793 
1794     Aws::String m_autoScalingRole;
1795     bool m_autoScalingRoleHasBeenSet;
1796 
1797     ScaleDownBehavior m_scaleDownBehavior;
1798     bool m_scaleDownBehaviorHasBeenSet;
1799 
1800     Aws::String m_customAmiId;
1801     bool m_customAmiIdHasBeenSet;
1802 
1803     int m_ebsRootVolumeSize;
1804     bool m_ebsRootVolumeSizeHasBeenSet;
1805 
1806     RepoUpgradeOnBoot m_repoUpgradeOnBoot;
1807     bool m_repoUpgradeOnBootHasBeenSet;
1808 
1809     KerberosAttributes m_kerberosAttributes;
1810     bool m_kerberosAttributesHasBeenSet;
1811 
1812     int m_stepConcurrencyLevel;
1813     bool m_stepConcurrencyLevelHasBeenSet;
1814 
1815     ManagedScalingPolicy m_managedScalingPolicy;
1816     bool m_managedScalingPolicyHasBeenSet;
1817 
1818     Aws::Vector<PlacementGroupConfig> m_placementGroupConfigs;
1819     bool m_placementGroupConfigsHasBeenSet;
1820 
1821     AutoTerminationPolicy m_autoTerminationPolicy;
1822     bool m_autoTerminationPolicyHasBeenSet;
1823   };
1824 
1825 } // namespace Model
1826 } // namespace EMR
1827 } // namespace Aws
1828