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