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/core/utils/memory/stl/AWSString.h> 9 #include <aws/core/utils/memory/stl/AWSVector.h> 10 #include <aws/elasticmapreduce/model/PlacementType.h> 11 #include <aws/elasticmapreduce/model/InstanceGroupConfig.h> 12 #include <aws/elasticmapreduce/model/InstanceFleetConfig.h> 13 #include <utility> 14 15 namespace Aws 16 { 17 namespace Utils 18 { 19 namespace Json 20 { 21 class JsonValue; 22 class JsonView; 23 } // namespace Json 24 } // namespace Utils 25 namespace EMR 26 { 27 namespace Model 28 { 29 30 /** 31 * <p>A description of the Amazon EC2 instance on which the cluster (job flow) 32 * runs. A valid JobFlowInstancesConfig must contain either InstanceGroups or 33 * InstanceFleets. They cannot be used together. You may also have 34 * MasterInstanceType, SlaveInstanceType, and InstanceCount (all three must be 35 * present), but we don't recommend this configuration.</p><p><h3>See Also:</h3> 36 * <a 37 * href="http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/JobFlowInstancesConfig">AWS 38 * API Reference</a></p> 39 */ 40 class AWS_EMR_API JobFlowInstancesConfig 41 { 42 public: 43 JobFlowInstancesConfig(); 44 JobFlowInstancesConfig(Aws::Utils::Json::JsonView jsonValue); 45 JobFlowInstancesConfig& operator=(Aws::Utils::Json::JsonView jsonValue); 46 Aws::Utils::Json::JsonValue Jsonize() const; 47 48 49 /** 50 * <p>The EC2 instance type of the master node.</p> 51 */ GetMasterInstanceType()52 inline const Aws::String& GetMasterInstanceType() const{ return m_masterInstanceType; } 53 54 /** 55 * <p>The EC2 instance type of the master node.</p> 56 */ MasterInstanceTypeHasBeenSet()57 inline bool MasterInstanceTypeHasBeenSet() const { return m_masterInstanceTypeHasBeenSet; } 58 59 /** 60 * <p>The EC2 instance type of the master node.</p> 61 */ SetMasterInstanceType(const Aws::String & value)62 inline void SetMasterInstanceType(const Aws::String& value) { m_masterInstanceTypeHasBeenSet = true; m_masterInstanceType = value; } 63 64 /** 65 * <p>The EC2 instance type of the master node.</p> 66 */ SetMasterInstanceType(Aws::String && value)67 inline void SetMasterInstanceType(Aws::String&& value) { m_masterInstanceTypeHasBeenSet = true; m_masterInstanceType = std::move(value); } 68 69 /** 70 * <p>The EC2 instance type of the master node.</p> 71 */ SetMasterInstanceType(const char * value)72 inline void SetMasterInstanceType(const char* value) { m_masterInstanceTypeHasBeenSet = true; m_masterInstanceType.assign(value); } 73 74 /** 75 * <p>The EC2 instance type of the master node.</p> 76 */ WithMasterInstanceType(const Aws::String & value)77 inline JobFlowInstancesConfig& WithMasterInstanceType(const Aws::String& value) { SetMasterInstanceType(value); return *this;} 78 79 /** 80 * <p>The EC2 instance type of the master node.</p> 81 */ WithMasterInstanceType(Aws::String && value)82 inline JobFlowInstancesConfig& WithMasterInstanceType(Aws::String&& value) { SetMasterInstanceType(std::move(value)); return *this;} 83 84 /** 85 * <p>The EC2 instance type of the master node.</p> 86 */ WithMasterInstanceType(const char * value)87 inline JobFlowInstancesConfig& WithMasterInstanceType(const char* value) { SetMasterInstanceType(value); return *this;} 88 89 90 /** 91 * <p>The EC2 instance type of the core and task nodes.</p> 92 */ GetSlaveInstanceType()93 inline const Aws::String& GetSlaveInstanceType() const{ return m_slaveInstanceType; } 94 95 /** 96 * <p>The EC2 instance type of the core and task nodes.</p> 97 */ SlaveInstanceTypeHasBeenSet()98 inline bool SlaveInstanceTypeHasBeenSet() const { return m_slaveInstanceTypeHasBeenSet; } 99 100 /** 101 * <p>The EC2 instance type of the core and task nodes.</p> 102 */ SetSlaveInstanceType(const Aws::String & value)103 inline void SetSlaveInstanceType(const Aws::String& value) { m_slaveInstanceTypeHasBeenSet = true; m_slaveInstanceType = value; } 104 105 /** 106 * <p>The EC2 instance type of the core and task nodes.</p> 107 */ SetSlaveInstanceType(Aws::String && value)108 inline void SetSlaveInstanceType(Aws::String&& value) { m_slaveInstanceTypeHasBeenSet = true; m_slaveInstanceType = std::move(value); } 109 110 /** 111 * <p>The EC2 instance type of the core and task nodes.</p> 112 */ SetSlaveInstanceType(const char * value)113 inline void SetSlaveInstanceType(const char* value) { m_slaveInstanceTypeHasBeenSet = true; m_slaveInstanceType.assign(value); } 114 115 /** 116 * <p>The EC2 instance type of the core and task nodes.</p> 117 */ WithSlaveInstanceType(const Aws::String & value)118 inline JobFlowInstancesConfig& WithSlaveInstanceType(const Aws::String& value) { SetSlaveInstanceType(value); return *this;} 119 120 /** 121 * <p>The EC2 instance type of the core and task nodes.</p> 122 */ WithSlaveInstanceType(Aws::String && value)123 inline JobFlowInstancesConfig& WithSlaveInstanceType(Aws::String&& value) { SetSlaveInstanceType(std::move(value)); return *this;} 124 125 /** 126 * <p>The EC2 instance type of the core and task nodes.</p> 127 */ WithSlaveInstanceType(const char * value)128 inline JobFlowInstancesConfig& WithSlaveInstanceType(const char* value) { SetSlaveInstanceType(value); return *this;} 129 130 131 /** 132 * <p>The number of EC2 instances in the cluster.</p> 133 */ GetInstanceCount()134 inline int GetInstanceCount() const{ return m_instanceCount; } 135 136 /** 137 * <p>The number of EC2 instances in the cluster.</p> 138 */ InstanceCountHasBeenSet()139 inline bool InstanceCountHasBeenSet() const { return m_instanceCountHasBeenSet; } 140 141 /** 142 * <p>The number of EC2 instances in the cluster.</p> 143 */ SetInstanceCount(int value)144 inline void SetInstanceCount(int value) { m_instanceCountHasBeenSet = true; m_instanceCount = value; } 145 146 /** 147 * <p>The number of EC2 instances in the cluster.</p> 148 */ WithInstanceCount(int value)149 inline JobFlowInstancesConfig& WithInstanceCount(int value) { SetInstanceCount(value); return *this;} 150 151 152 /** 153 * <p>Configuration for the instance groups in a cluster.</p> 154 */ GetInstanceGroups()155 inline const Aws::Vector<InstanceGroupConfig>& GetInstanceGroups() const{ return m_instanceGroups; } 156 157 /** 158 * <p>Configuration for the instance groups in a cluster.</p> 159 */ InstanceGroupsHasBeenSet()160 inline bool InstanceGroupsHasBeenSet() const { return m_instanceGroupsHasBeenSet; } 161 162 /** 163 * <p>Configuration for the instance groups in a cluster.</p> 164 */ SetInstanceGroups(const Aws::Vector<InstanceGroupConfig> & value)165 inline void SetInstanceGroups(const Aws::Vector<InstanceGroupConfig>& value) { m_instanceGroupsHasBeenSet = true; m_instanceGroups = value; } 166 167 /** 168 * <p>Configuration for the instance groups in a cluster.</p> 169 */ SetInstanceGroups(Aws::Vector<InstanceGroupConfig> && value)170 inline void SetInstanceGroups(Aws::Vector<InstanceGroupConfig>&& value) { m_instanceGroupsHasBeenSet = true; m_instanceGroups = std::move(value); } 171 172 /** 173 * <p>Configuration for the instance groups in a cluster.</p> 174 */ WithInstanceGroups(const Aws::Vector<InstanceGroupConfig> & value)175 inline JobFlowInstancesConfig& WithInstanceGroups(const Aws::Vector<InstanceGroupConfig>& value) { SetInstanceGroups(value); return *this;} 176 177 /** 178 * <p>Configuration for the instance groups in a cluster.</p> 179 */ WithInstanceGroups(Aws::Vector<InstanceGroupConfig> && value)180 inline JobFlowInstancesConfig& WithInstanceGroups(Aws::Vector<InstanceGroupConfig>&& value) { SetInstanceGroups(std::move(value)); return *this;} 181 182 /** 183 * <p>Configuration for the instance groups in a cluster.</p> 184 */ AddInstanceGroups(const InstanceGroupConfig & value)185 inline JobFlowInstancesConfig& AddInstanceGroups(const InstanceGroupConfig& value) { m_instanceGroupsHasBeenSet = true; m_instanceGroups.push_back(value); return *this; } 186 187 /** 188 * <p>Configuration for the instance groups in a cluster.</p> 189 */ AddInstanceGroups(InstanceGroupConfig && value)190 inline JobFlowInstancesConfig& AddInstanceGroups(InstanceGroupConfig&& value) { m_instanceGroupsHasBeenSet = true; m_instanceGroups.push_back(std::move(value)); return *this; } 191 192 193 /** 194 * <p>The instance fleet configuration is available only in Amazon EMR 195 * versions 4.8.0 and later, excluding 5.0.x versions.</p> <p>Describes the 196 * EC2 instances and instance configurations for clusters that use the instance 197 * fleet configuration.</p> 198 */ GetInstanceFleets()199 inline const Aws::Vector<InstanceFleetConfig>& GetInstanceFleets() const{ return m_instanceFleets; } 200 201 /** 202 * <p>The instance fleet configuration is available only in Amazon EMR 203 * versions 4.8.0 and later, excluding 5.0.x versions.</p> <p>Describes the 204 * EC2 instances and instance configurations for clusters that use the instance 205 * fleet configuration.</p> 206 */ InstanceFleetsHasBeenSet()207 inline bool InstanceFleetsHasBeenSet() const { return m_instanceFleetsHasBeenSet; } 208 209 /** 210 * <p>The instance fleet configuration is available only in Amazon EMR 211 * versions 4.8.0 and later, excluding 5.0.x versions.</p> <p>Describes the 212 * EC2 instances and instance configurations for clusters that use the instance 213 * fleet configuration.</p> 214 */ SetInstanceFleets(const Aws::Vector<InstanceFleetConfig> & value)215 inline void SetInstanceFleets(const Aws::Vector<InstanceFleetConfig>& value) { m_instanceFleetsHasBeenSet = true; m_instanceFleets = value; } 216 217 /** 218 * <p>The instance fleet configuration is available only in Amazon EMR 219 * versions 4.8.0 and later, excluding 5.0.x versions.</p> <p>Describes the 220 * EC2 instances and instance configurations for clusters that use the instance 221 * fleet configuration.</p> 222 */ SetInstanceFleets(Aws::Vector<InstanceFleetConfig> && value)223 inline void SetInstanceFleets(Aws::Vector<InstanceFleetConfig>&& value) { m_instanceFleetsHasBeenSet = true; m_instanceFleets = std::move(value); } 224 225 /** 226 * <p>The instance fleet configuration is available only in Amazon EMR 227 * versions 4.8.0 and later, excluding 5.0.x versions.</p> <p>Describes the 228 * EC2 instances and instance configurations for clusters that use the instance 229 * fleet configuration.</p> 230 */ WithInstanceFleets(const Aws::Vector<InstanceFleetConfig> & value)231 inline JobFlowInstancesConfig& WithInstanceFleets(const Aws::Vector<InstanceFleetConfig>& value) { SetInstanceFleets(value); return *this;} 232 233 /** 234 * <p>The instance fleet configuration is available only in Amazon EMR 235 * versions 4.8.0 and later, excluding 5.0.x versions.</p> <p>Describes the 236 * EC2 instances and instance configurations for clusters that use the instance 237 * fleet configuration.</p> 238 */ WithInstanceFleets(Aws::Vector<InstanceFleetConfig> && value)239 inline JobFlowInstancesConfig& WithInstanceFleets(Aws::Vector<InstanceFleetConfig>&& value) { SetInstanceFleets(std::move(value)); return *this;} 240 241 /** 242 * <p>The instance fleet configuration is available only in Amazon EMR 243 * versions 4.8.0 and later, excluding 5.0.x versions.</p> <p>Describes the 244 * EC2 instances and instance configurations for clusters that use the instance 245 * fleet configuration.</p> 246 */ AddInstanceFleets(const InstanceFleetConfig & value)247 inline JobFlowInstancesConfig& AddInstanceFleets(const InstanceFleetConfig& value) { m_instanceFleetsHasBeenSet = true; m_instanceFleets.push_back(value); return *this; } 248 249 /** 250 * <p>The instance fleet configuration is available only in Amazon EMR 251 * versions 4.8.0 and later, excluding 5.0.x versions.</p> <p>Describes the 252 * EC2 instances and instance configurations for clusters that use the instance 253 * fleet configuration.</p> 254 */ AddInstanceFleets(InstanceFleetConfig && value)255 inline JobFlowInstancesConfig& AddInstanceFleets(InstanceFleetConfig&& value) { m_instanceFleetsHasBeenSet = true; m_instanceFleets.push_back(std::move(value)); return *this; } 256 257 258 /** 259 * <p>The name of the EC2 key pair that can be used to connect to the master node 260 * using SSH as the user called "hadoop."</p> 261 */ GetEc2KeyName()262 inline const Aws::String& GetEc2KeyName() const{ return m_ec2KeyName; } 263 264 /** 265 * <p>The name of the EC2 key pair that can be used to connect to the master node 266 * using SSH as the user called "hadoop."</p> 267 */ Ec2KeyNameHasBeenSet()268 inline bool Ec2KeyNameHasBeenSet() const { return m_ec2KeyNameHasBeenSet; } 269 270 /** 271 * <p>The name of the EC2 key pair that can be used to connect to the master node 272 * using SSH as the user called "hadoop."</p> 273 */ SetEc2KeyName(const Aws::String & value)274 inline void SetEc2KeyName(const Aws::String& value) { m_ec2KeyNameHasBeenSet = true; m_ec2KeyName = value; } 275 276 /** 277 * <p>The name of the EC2 key pair that can be used to connect to the master node 278 * using SSH as the user called "hadoop."</p> 279 */ SetEc2KeyName(Aws::String && value)280 inline void SetEc2KeyName(Aws::String&& value) { m_ec2KeyNameHasBeenSet = true; m_ec2KeyName = std::move(value); } 281 282 /** 283 * <p>The name of the EC2 key pair that can be used to connect to the master node 284 * using SSH as the user called "hadoop."</p> 285 */ SetEc2KeyName(const char * value)286 inline void SetEc2KeyName(const char* value) { m_ec2KeyNameHasBeenSet = true; m_ec2KeyName.assign(value); } 287 288 /** 289 * <p>The name of the EC2 key pair that can be used to connect to the master node 290 * using SSH as the user called "hadoop."</p> 291 */ WithEc2KeyName(const Aws::String & value)292 inline JobFlowInstancesConfig& WithEc2KeyName(const Aws::String& value) { SetEc2KeyName(value); return *this;} 293 294 /** 295 * <p>The name of the EC2 key pair that can be used to connect to the master node 296 * using SSH as the user called "hadoop."</p> 297 */ WithEc2KeyName(Aws::String && value)298 inline JobFlowInstancesConfig& WithEc2KeyName(Aws::String&& value) { SetEc2KeyName(std::move(value)); return *this;} 299 300 /** 301 * <p>The name of the EC2 key pair that can be used to connect to the master node 302 * using SSH as the user called "hadoop."</p> 303 */ WithEc2KeyName(const char * value)304 inline JobFlowInstancesConfig& WithEc2KeyName(const char* value) { SetEc2KeyName(value); return *this;} 305 306 307 /** 308 * <p>The Availability Zone in which the cluster runs.</p> 309 */ GetPlacement()310 inline const PlacementType& GetPlacement() const{ return m_placement; } 311 312 /** 313 * <p>The Availability Zone in which the cluster runs.</p> 314 */ PlacementHasBeenSet()315 inline bool PlacementHasBeenSet() const { return m_placementHasBeenSet; } 316 317 /** 318 * <p>The Availability Zone in which the cluster runs.</p> 319 */ SetPlacement(const PlacementType & value)320 inline void SetPlacement(const PlacementType& value) { m_placementHasBeenSet = true; m_placement = value; } 321 322 /** 323 * <p>The Availability Zone in which the cluster runs.</p> 324 */ SetPlacement(PlacementType && value)325 inline void SetPlacement(PlacementType&& value) { m_placementHasBeenSet = true; m_placement = std::move(value); } 326 327 /** 328 * <p>The Availability Zone in which the cluster runs.</p> 329 */ WithPlacement(const PlacementType & value)330 inline JobFlowInstancesConfig& WithPlacement(const PlacementType& value) { SetPlacement(value); return *this;} 331 332 /** 333 * <p>The Availability Zone in which the cluster runs.</p> 334 */ WithPlacement(PlacementType && value)335 inline JobFlowInstancesConfig& WithPlacement(PlacementType&& value) { SetPlacement(std::move(value)); return *this;} 336 337 338 /** 339 * <p>Specifies whether the cluster should remain available after completing all 340 * steps. Defaults to <code>true</code>. For more information about configuring 341 * cluster termination, see <a 342 * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html">Control 343 * Cluster Termination</a> in the <i>EMR Management Guide</i>.</p> 344 */ GetKeepJobFlowAliveWhenNoSteps()345 inline bool GetKeepJobFlowAliveWhenNoSteps() const{ return m_keepJobFlowAliveWhenNoSteps; } 346 347 /** 348 * <p>Specifies whether the cluster should remain available after completing all 349 * steps. Defaults to <code>true</code>. For more information about configuring 350 * cluster termination, see <a 351 * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html">Control 352 * Cluster Termination</a> in the <i>EMR Management Guide</i>.</p> 353 */ KeepJobFlowAliveWhenNoStepsHasBeenSet()354 inline bool KeepJobFlowAliveWhenNoStepsHasBeenSet() const { return m_keepJobFlowAliveWhenNoStepsHasBeenSet; } 355 356 /** 357 * <p>Specifies whether the cluster should remain available after completing all 358 * steps. Defaults to <code>true</code>. For more information about configuring 359 * cluster termination, see <a 360 * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html">Control 361 * Cluster Termination</a> in the <i>EMR Management Guide</i>.</p> 362 */ SetKeepJobFlowAliveWhenNoSteps(bool value)363 inline void SetKeepJobFlowAliveWhenNoSteps(bool value) { m_keepJobFlowAliveWhenNoStepsHasBeenSet = true; m_keepJobFlowAliveWhenNoSteps = value; } 364 365 /** 366 * <p>Specifies whether the cluster should remain available after completing all 367 * steps. Defaults to <code>true</code>. For more information about configuring 368 * cluster termination, see <a 369 * href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html">Control 370 * Cluster Termination</a> in the <i>EMR Management Guide</i>.</p> 371 */ WithKeepJobFlowAliveWhenNoSteps(bool value)372 inline JobFlowInstancesConfig& WithKeepJobFlowAliveWhenNoSteps(bool value) { SetKeepJobFlowAliveWhenNoSteps(value); return *this;} 373 374 375 /** 376 * <p>Specifies whether to lock the cluster to prevent the Amazon EC2 instances 377 * from being terminated by API call, user intervention, or in the event of a 378 * job-flow error.</p> 379 */ GetTerminationProtected()380 inline bool GetTerminationProtected() const{ return m_terminationProtected; } 381 382 /** 383 * <p>Specifies whether to lock the cluster to prevent the Amazon EC2 instances 384 * from being terminated by API call, user intervention, or in the event of a 385 * job-flow error.</p> 386 */ TerminationProtectedHasBeenSet()387 inline bool TerminationProtectedHasBeenSet() const { return m_terminationProtectedHasBeenSet; } 388 389 /** 390 * <p>Specifies whether to lock the cluster to prevent the Amazon EC2 instances 391 * from being terminated by API call, user intervention, or in the event of a 392 * job-flow error.</p> 393 */ SetTerminationProtected(bool value)394 inline void SetTerminationProtected(bool value) { m_terminationProtectedHasBeenSet = true; m_terminationProtected = value; } 395 396 /** 397 * <p>Specifies whether to lock the cluster to prevent the Amazon EC2 instances 398 * from being terminated by API call, user intervention, or in the event of a 399 * job-flow error.</p> 400 */ WithTerminationProtected(bool value)401 inline JobFlowInstancesConfig& WithTerminationProtected(bool value) { SetTerminationProtected(value); return *this;} 402 403 404 /** 405 * <p>Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop 406 * version for the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" 407 * (no longer maintained), "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or 408 * "2.4.0". If you do not set this value, the default of 0.18 is used, unless the 409 * <code>AmiVersion</code> parameter is set in the RunJobFlow call, in which case 410 * the default version of Hadoop for that AMI version is used.</p> 411 */ GetHadoopVersion()412 inline const Aws::String& GetHadoopVersion() const{ return m_hadoopVersion; } 413 414 /** 415 * <p>Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop 416 * version for the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" 417 * (no longer maintained), "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or 418 * "2.4.0". If you do not set this value, the default of 0.18 is used, unless the 419 * <code>AmiVersion</code> parameter is set in the RunJobFlow call, in which case 420 * the default version of Hadoop for that AMI version is used.</p> 421 */ HadoopVersionHasBeenSet()422 inline bool HadoopVersionHasBeenSet() const { return m_hadoopVersionHasBeenSet; } 423 424 /** 425 * <p>Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop 426 * version for the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" 427 * (no longer maintained), "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or 428 * "2.4.0". If you do not set this value, the default of 0.18 is used, unless the 429 * <code>AmiVersion</code> parameter is set in the RunJobFlow call, in which case 430 * the default version of Hadoop for that AMI version is used.</p> 431 */ SetHadoopVersion(const Aws::String & value)432 inline void SetHadoopVersion(const Aws::String& value) { m_hadoopVersionHasBeenSet = true; m_hadoopVersion = value; } 433 434 /** 435 * <p>Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop 436 * version for the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" 437 * (no longer maintained), "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or 438 * "2.4.0". If you do not set this value, the default of 0.18 is used, unless the 439 * <code>AmiVersion</code> parameter is set in the RunJobFlow call, in which case 440 * the default version of Hadoop for that AMI version is used.</p> 441 */ SetHadoopVersion(Aws::String && value)442 inline void SetHadoopVersion(Aws::String&& value) { m_hadoopVersionHasBeenSet = true; m_hadoopVersion = std::move(value); } 443 444 /** 445 * <p>Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop 446 * version for the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" 447 * (no longer maintained), "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or 448 * "2.4.0". If you do not set this value, the default of 0.18 is used, unless the 449 * <code>AmiVersion</code> parameter is set in the RunJobFlow call, in which case 450 * the default version of Hadoop for that AMI version is used.</p> 451 */ SetHadoopVersion(const char * value)452 inline void SetHadoopVersion(const char* value) { m_hadoopVersionHasBeenSet = true; m_hadoopVersion.assign(value); } 453 454 /** 455 * <p>Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop 456 * version for the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" 457 * (no longer maintained), "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or 458 * "2.4.0". If you do not set this value, the default of 0.18 is used, unless the 459 * <code>AmiVersion</code> parameter is set in the RunJobFlow call, in which case 460 * the default version of Hadoop for that AMI version is used.</p> 461 */ WithHadoopVersion(const Aws::String & value)462 inline JobFlowInstancesConfig& WithHadoopVersion(const Aws::String& value) { SetHadoopVersion(value); return *this;} 463 464 /** 465 * <p>Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop 466 * version for the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" 467 * (no longer maintained), "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or 468 * "2.4.0". If you do not set this value, the default of 0.18 is used, unless the 469 * <code>AmiVersion</code> parameter is set in the RunJobFlow call, in which case 470 * the default version of Hadoop for that AMI version is used.</p> 471 */ WithHadoopVersion(Aws::String && value)472 inline JobFlowInstancesConfig& WithHadoopVersion(Aws::String&& value) { SetHadoopVersion(std::move(value)); return *this;} 473 474 /** 475 * <p>Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop 476 * version for the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" 477 * (no longer maintained), "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or 478 * "2.4.0". If you do not set this value, the default of 0.18 is used, unless the 479 * <code>AmiVersion</code> parameter is set in the RunJobFlow call, in which case 480 * the default version of Hadoop for that AMI version is used.</p> 481 */ WithHadoopVersion(const char * value)482 inline JobFlowInstancesConfig& WithHadoopVersion(const char* value) { SetHadoopVersion(value); return *this;} 483 484 485 /** 486 * <p>Applies to clusters that use the uniform instance group configuration. To 487 * launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this 488 * parameter to the identifier of the Amazon VPC subnet where you want the cluster 489 * to launch. If you do not specify this value and your account supports 490 * EC2-Classic, the cluster launches in EC2-Classic.</p> 491 */ GetEc2SubnetId()492 inline const Aws::String& GetEc2SubnetId() const{ return m_ec2SubnetId; } 493 494 /** 495 * <p>Applies to clusters that use the uniform instance group configuration. To 496 * launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this 497 * parameter to the identifier of the Amazon VPC subnet where you want the cluster 498 * to launch. If you do not specify this value and your account supports 499 * EC2-Classic, the cluster launches in EC2-Classic.</p> 500 */ Ec2SubnetIdHasBeenSet()501 inline bool Ec2SubnetIdHasBeenSet() const { return m_ec2SubnetIdHasBeenSet; } 502 503 /** 504 * <p>Applies to clusters that use the uniform instance group configuration. To 505 * launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this 506 * parameter to the identifier of the Amazon VPC subnet where you want the cluster 507 * to launch. If you do not specify this value and your account supports 508 * EC2-Classic, the cluster launches in EC2-Classic.</p> 509 */ SetEc2SubnetId(const Aws::String & value)510 inline void SetEc2SubnetId(const Aws::String& value) { m_ec2SubnetIdHasBeenSet = true; m_ec2SubnetId = value; } 511 512 /** 513 * <p>Applies to clusters that use the uniform instance group configuration. To 514 * launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this 515 * parameter to the identifier of the Amazon VPC subnet where you want the cluster 516 * to launch. If you do not specify this value and your account supports 517 * EC2-Classic, the cluster launches in EC2-Classic.</p> 518 */ SetEc2SubnetId(Aws::String && value)519 inline void SetEc2SubnetId(Aws::String&& value) { m_ec2SubnetIdHasBeenSet = true; m_ec2SubnetId = std::move(value); } 520 521 /** 522 * <p>Applies to clusters that use the uniform instance group configuration. To 523 * launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this 524 * parameter to the identifier of the Amazon VPC subnet where you want the cluster 525 * to launch. If you do not specify this value and your account supports 526 * EC2-Classic, the cluster launches in EC2-Classic.</p> 527 */ SetEc2SubnetId(const char * value)528 inline void SetEc2SubnetId(const char* value) { m_ec2SubnetIdHasBeenSet = true; m_ec2SubnetId.assign(value); } 529 530 /** 531 * <p>Applies to clusters that use the uniform instance group configuration. To 532 * launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this 533 * parameter to the identifier of the Amazon VPC subnet where you want the cluster 534 * to launch. If you do not specify this value and your account supports 535 * EC2-Classic, the cluster launches in EC2-Classic.</p> 536 */ WithEc2SubnetId(const Aws::String & value)537 inline JobFlowInstancesConfig& WithEc2SubnetId(const Aws::String& value) { SetEc2SubnetId(value); return *this;} 538 539 /** 540 * <p>Applies to clusters that use the uniform instance group configuration. To 541 * launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this 542 * parameter to the identifier of the Amazon VPC subnet where you want the cluster 543 * to launch. If you do not specify this value and your account supports 544 * EC2-Classic, the cluster launches in EC2-Classic.</p> 545 */ WithEc2SubnetId(Aws::String && value)546 inline JobFlowInstancesConfig& WithEc2SubnetId(Aws::String&& value) { SetEc2SubnetId(std::move(value)); return *this;} 547 548 /** 549 * <p>Applies to clusters that use the uniform instance group configuration. To 550 * launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this 551 * parameter to the identifier of the Amazon VPC subnet where you want the cluster 552 * to launch. If you do not specify this value and your account supports 553 * EC2-Classic, the cluster launches in EC2-Classic.</p> 554 */ WithEc2SubnetId(const char * value)555 inline JobFlowInstancesConfig& WithEc2SubnetId(const char* value) { SetEc2SubnetId(value); return *this;} 556 557 558 /** 559 * <p>Applies to clusters that use the instance fleet configuration. When multiple 560 * EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances 561 * in the optimal subnet.</p> <p>The instance fleet configuration is 562 * available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x 563 * versions.</p> 564 */ GetEc2SubnetIds()565 inline const Aws::Vector<Aws::String>& GetEc2SubnetIds() const{ return m_ec2SubnetIds; } 566 567 /** 568 * <p>Applies to clusters that use the instance fleet configuration. When multiple 569 * EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances 570 * in the optimal subnet.</p> <p>The instance fleet configuration is 571 * available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x 572 * versions.</p> 573 */ Ec2SubnetIdsHasBeenSet()574 inline bool Ec2SubnetIdsHasBeenSet() const { return m_ec2SubnetIdsHasBeenSet; } 575 576 /** 577 * <p>Applies to clusters that use the instance fleet configuration. When multiple 578 * EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances 579 * in the optimal subnet.</p> <p>The instance fleet configuration is 580 * available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x 581 * versions.</p> 582 */ SetEc2SubnetIds(const Aws::Vector<Aws::String> & value)583 inline void SetEc2SubnetIds(const Aws::Vector<Aws::String>& value) { m_ec2SubnetIdsHasBeenSet = true; m_ec2SubnetIds = value; } 584 585 /** 586 * <p>Applies to clusters that use the instance fleet configuration. When multiple 587 * EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances 588 * in the optimal subnet.</p> <p>The instance fleet configuration is 589 * available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x 590 * versions.</p> 591 */ SetEc2SubnetIds(Aws::Vector<Aws::String> && value)592 inline void SetEc2SubnetIds(Aws::Vector<Aws::String>&& value) { m_ec2SubnetIdsHasBeenSet = true; m_ec2SubnetIds = std::move(value); } 593 594 /** 595 * <p>Applies to clusters that use the instance fleet configuration. When multiple 596 * EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances 597 * in the optimal subnet.</p> <p>The instance fleet configuration is 598 * available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x 599 * versions.</p> 600 */ WithEc2SubnetIds(const Aws::Vector<Aws::String> & value)601 inline JobFlowInstancesConfig& WithEc2SubnetIds(const Aws::Vector<Aws::String>& value) { SetEc2SubnetIds(value); return *this;} 602 603 /** 604 * <p>Applies to clusters that use the instance fleet configuration. When multiple 605 * EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances 606 * in the optimal subnet.</p> <p>The instance fleet configuration is 607 * available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x 608 * versions.</p> 609 */ WithEc2SubnetIds(Aws::Vector<Aws::String> && value)610 inline JobFlowInstancesConfig& WithEc2SubnetIds(Aws::Vector<Aws::String>&& value) { SetEc2SubnetIds(std::move(value)); return *this;} 611 612 /** 613 * <p>Applies to clusters that use the instance fleet configuration. When multiple 614 * EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances 615 * in the optimal subnet.</p> <p>The instance fleet configuration is 616 * available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x 617 * versions.</p> 618 */ AddEc2SubnetIds(const Aws::String & value)619 inline JobFlowInstancesConfig& AddEc2SubnetIds(const Aws::String& value) { m_ec2SubnetIdsHasBeenSet = true; m_ec2SubnetIds.push_back(value); return *this; } 620 621 /** 622 * <p>Applies to clusters that use the instance fleet configuration. When multiple 623 * EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances 624 * in the optimal subnet.</p> <p>The instance fleet configuration is 625 * available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x 626 * versions.</p> 627 */ AddEc2SubnetIds(Aws::String && value)628 inline JobFlowInstancesConfig& AddEc2SubnetIds(Aws::String&& value) { m_ec2SubnetIdsHasBeenSet = true; m_ec2SubnetIds.push_back(std::move(value)); return *this; } 629 630 /** 631 * <p>Applies to clusters that use the instance fleet configuration. When multiple 632 * EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances 633 * in the optimal subnet.</p> <p>The instance fleet configuration is 634 * available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x 635 * versions.</p> 636 */ AddEc2SubnetIds(const char * value)637 inline JobFlowInstancesConfig& AddEc2SubnetIds(const char* value) { m_ec2SubnetIdsHasBeenSet = true; m_ec2SubnetIds.push_back(value); return *this; } 638 639 640 /** 641 * <p>The identifier of the Amazon EC2 security group for the master node. If you 642 * specify <code>EmrManagedMasterSecurityGroup</code>, you must also specify 643 * <code>EmrManagedSlaveSecurityGroup</code>.</p> 644 */ GetEmrManagedMasterSecurityGroup()645 inline const Aws::String& GetEmrManagedMasterSecurityGroup() const{ return m_emrManagedMasterSecurityGroup; } 646 647 /** 648 * <p>The identifier of the Amazon EC2 security group for the master node. If you 649 * specify <code>EmrManagedMasterSecurityGroup</code>, you must also specify 650 * <code>EmrManagedSlaveSecurityGroup</code>.</p> 651 */ EmrManagedMasterSecurityGroupHasBeenSet()652 inline bool EmrManagedMasterSecurityGroupHasBeenSet() const { return m_emrManagedMasterSecurityGroupHasBeenSet; } 653 654 /** 655 * <p>The identifier of the Amazon EC2 security group for the master node. If you 656 * specify <code>EmrManagedMasterSecurityGroup</code>, you must also specify 657 * <code>EmrManagedSlaveSecurityGroup</code>.</p> 658 */ SetEmrManagedMasterSecurityGroup(const Aws::String & value)659 inline void SetEmrManagedMasterSecurityGroup(const Aws::String& value) { m_emrManagedMasterSecurityGroupHasBeenSet = true; m_emrManagedMasterSecurityGroup = value; } 660 661 /** 662 * <p>The identifier of the Amazon EC2 security group for the master node. If you 663 * specify <code>EmrManagedMasterSecurityGroup</code>, you must also specify 664 * <code>EmrManagedSlaveSecurityGroup</code>.</p> 665 */ SetEmrManagedMasterSecurityGroup(Aws::String && value)666 inline void SetEmrManagedMasterSecurityGroup(Aws::String&& value) { m_emrManagedMasterSecurityGroupHasBeenSet = true; m_emrManagedMasterSecurityGroup = std::move(value); } 667 668 /** 669 * <p>The identifier of the Amazon EC2 security group for the master node. If you 670 * specify <code>EmrManagedMasterSecurityGroup</code>, you must also specify 671 * <code>EmrManagedSlaveSecurityGroup</code>.</p> 672 */ SetEmrManagedMasterSecurityGroup(const char * value)673 inline void SetEmrManagedMasterSecurityGroup(const char* value) { m_emrManagedMasterSecurityGroupHasBeenSet = true; m_emrManagedMasterSecurityGroup.assign(value); } 674 675 /** 676 * <p>The identifier of the Amazon EC2 security group for the master node. If you 677 * specify <code>EmrManagedMasterSecurityGroup</code>, you must also specify 678 * <code>EmrManagedSlaveSecurityGroup</code>.</p> 679 */ WithEmrManagedMasterSecurityGroup(const Aws::String & value)680 inline JobFlowInstancesConfig& WithEmrManagedMasterSecurityGroup(const Aws::String& value) { SetEmrManagedMasterSecurityGroup(value); return *this;} 681 682 /** 683 * <p>The identifier of the Amazon EC2 security group for the master node. If you 684 * specify <code>EmrManagedMasterSecurityGroup</code>, you must also specify 685 * <code>EmrManagedSlaveSecurityGroup</code>.</p> 686 */ WithEmrManagedMasterSecurityGroup(Aws::String && value)687 inline JobFlowInstancesConfig& WithEmrManagedMasterSecurityGroup(Aws::String&& value) { SetEmrManagedMasterSecurityGroup(std::move(value)); return *this;} 688 689 /** 690 * <p>The identifier of the Amazon EC2 security group for the master node. If you 691 * specify <code>EmrManagedMasterSecurityGroup</code>, you must also specify 692 * <code>EmrManagedSlaveSecurityGroup</code>.</p> 693 */ WithEmrManagedMasterSecurityGroup(const char * value)694 inline JobFlowInstancesConfig& WithEmrManagedMasterSecurityGroup(const char* value) { SetEmrManagedMasterSecurityGroup(value); return *this;} 695 696 697 /** 698 * <p>The identifier of the Amazon EC2 security group for the core and task nodes. 699 * If you specify <code>EmrManagedSlaveSecurityGroup</code>, you must also specify 700 * <code>EmrManagedMasterSecurityGroup</code>.</p> 701 */ GetEmrManagedSlaveSecurityGroup()702 inline const Aws::String& GetEmrManagedSlaveSecurityGroup() const{ return m_emrManagedSlaveSecurityGroup; } 703 704 /** 705 * <p>The identifier of the Amazon EC2 security group for the core and task nodes. 706 * If you specify <code>EmrManagedSlaveSecurityGroup</code>, you must also specify 707 * <code>EmrManagedMasterSecurityGroup</code>.</p> 708 */ EmrManagedSlaveSecurityGroupHasBeenSet()709 inline bool EmrManagedSlaveSecurityGroupHasBeenSet() const { return m_emrManagedSlaveSecurityGroupHasBeenSet; } 710 711 /** 712 * <p>The identifier of the Amazon EC2 security group for the core and task nodes. 713 * If you specify <code>EmrManagedSlaveSecurityGroup</code>, you must also specify 714 * <code>EmrManagedMasterSecurityGroup</code>.</p> 715 */ SetEmrManagedSlaveSecurityGroup(const Aws::String & value)716 inline void SetEmrManagedSlaveSecurityGroup(const Aws::String& value) { m_emrManagedSlaveSecurityGroupHasBeenSet = true; m_emrManagedSlaveSecurityGroup = value; } 717 718 /** 719 * <p>The identifier of the Amazon EC2 security group for the core and task nodes. 720 * If you specify <code>EmrManagedSlaveSecurityGroup</code>, you must also specify 721 * <code>EmrManagedMasterSecurityGroup</code>.</p> 722 */ SetEmrManagedSlaveSecurityGroup(Aws::String && value)723 inline void SetEmrManagedSlaveSecurityGroup(Aws::String&& value) { m_emrManagedSlaveSecurityGroupHasBeenSet = true; m_emrManagedSlaveSecurityGroup = std::move(value); } 724 725 /** 726 * <p>The identifier of the Amazon EC2 security group for the core and task nodes. 727 * If you specify <code>EmrManagedSlaveSecurityGroup</code>, you must also specify 728 * <code>EmrManagedMasterSecurityGroup</code>.</p> 729 */ SetEmrManagedSlaveSecurityGroup(const char * value)730 inline void SetEmrManagedSlaveSecurityGroup(const char* value) { m_emrManagedSlaveSecurityGroupHasBeenSet = true; m_emrManagedSlaveSecurityGroup.assign(value); } 731 732 /** 733 * <p>The identifier of the Amazon EC2 security group for the core and task nodes. 734 * If you specify <code>EmrManagedSlaveSecurityGroup</code>, you must also specify 735 * <code>EmrManagedMasterSecurityGroup</code>.</p> 736 */ WithEmrManagedSlaveSecurityGroup(const Aws::String & value)737 inline JobFlowInstancesConfig& WithEmrManagedSlaveSecurityGroup(const Aws::String& value) { SetEmrManagedSlaveSecurityGroup(value); return *this;} 738 739 /** 740 * <p>The identifier of the Amazon EC2 security group for the core and task nodes. 741 * If you specify <code>EmrManagedSlaveSecurityGroup</code>, you must also specify 742 * <code>EmrManagedMasterSecurityGroup</code>.</p> 743 */ WithEmrManagedSlaveSecurityGroup(Aws::String && value)744 inline JobFlowInstancesConfig& WithEmrManagedSlaveSecurityGroup(Aws::String&& value) { SetEmrManagedSlaveSecurityGroup(std::move(value)); return *this;} 745 746 /** 747 * <p>The identifier of the Amazon EC2 security group for the core and task nodes. 748 * If you specify <code>EmrManagedSlaveSecurityGroup</code>, you must also specify 749 * <code>EmrManagedMasterSecurityGroup</code>.</p> 750 */ WithEmrManagedSlaveSecurityGroup(const char * value)751 inline JobFlowInstancesConfig& WithEmrManagedSlaveSecurityGroup(const char* value) { SetEmrManagedSlaveSecurityGroup(value); return *this;} 752 753 754 /** 755 * <p>The identifier of the Amazon EC2 security group for the Amazon EMR service to 756 * access clusters in VPC private subnets.</p> 757 */ GetServiceAccessSecurityGroup()758 inline const Aws::String& GetServiceAccessSecurityGroup() const{ return m_serviceAccessSecurityGroup; } 759 760 /** 761 * <p>The identifier of the Amazon EC2 security group for the Amazon EMR service to 762 * access clusters in VPC private subnets.</p> 763 */ ServiceAccessSecurityGroupHasBeenSet()764 inline bool ServiceAccessSecurityGroupHasBeenSet() const { return m_serviceAccessSecurityGroupHasBeenSet; } 765 766 /** 767 * <p>The identifier of the Amazon EC2 security group for the Amazon EMR service to 768 * access clusters in VPC private subnets.</p> 769 */ SetServiceAccessSecurityGroup(const Aws::String & value)770 inline void SetServiceAccessSecurityGroup(const Aws::String& value) { m_serviceAccessSecurityGroupHasBeenSet = true; m_serviceAccessSecurityGroup = value; } 771 772 /** 773 * <p>The identifier of the Amazon EC2 security group for the Amazon EMR service to 774 * access clusters in VPC private subnets.</p> 775 */ SetServiceAccessSecurityGroup(Aws::String && value)776 inline void SetServiceAccessSecurityGroup(Aws::String&& value) { m_serviceAccessSecurityGroupHasBeenSet = true; m_serviceAccessSecurityGroup = std::move(value); } 777 778 /** 779 * <p>The identifier of the Amazon EC2 security group for the Amazon EMR service to 780 * access clusters in VPC private subnets.</p> 781 */ SetServiceAccessSecurityGroup(const char * value)782 inline void SetServiceAccessSecurityGroup(const char* value) { m_serviceAccessSecurityGroupHasBeenSet = true; m_serviceAccessSecurityGroup.assign(value); } 783 784 /** 785 * <p>The identifier of the Amazon EC2 security group for the Amazon EMR service to 786 * access clusters in VPC private subnets.</p> 787 */ WithServiceAccessSecurityGroup(const Aws::String & value)788 inline JobFlowInstancesConfig& WithServiceAccessSecurityGroup(const Aws::String& value) { SetServiceAccessSecurityGroup(value); return *this;} 789 790 /** 791 * <p>The identifier of the Amazon EC2 security group for the Amazon EMR service to 792 * access clusters in VPC private subnets.</p> 793 */ WithServiceAccessSecurityGroup(Aws::String && value)794 inline JobFlowInstancesConfig& WithServiceAccessSecurityGroup(Aws::String&& value) { SetServiceAccessSecurityGroup(std::move(value)); return *this;} 795 796 /** 797 * <p>The identifier of the Amazon EC2 security group for the Amazon EMR service to 798 * access clusters in VPC private subnets.</p> 799 */ WithServiceAccessSecurityGroup(const char * value)800 inline JobFlowInstancesConfig& WithServiceAccessSecurityGroup(const char* value) { SetServiceAccessSecurityGroup(value); return *this;} 801 802 803 /** 804 * <p>A list of additional Amazon EC2 security group IDs for the master node.</p> 805 */ GetAdditionalMasterSecurityGroups()806 inline const Aws::Vector<Aws::String>& GetAdditionalMasterSecurityGroups() const{ return m_additionalMasterSecurityGroups; } 807 808 /** 809 * <p>A list of additional Amazon EC2 security group IDs for the master node.</p> 810 */ AdditionalMasterSecurityGroupsHasBeenSet()811 inline bool AdditionalMasterSecurityGroupsHasBeenSet() const { return m_additionalMasterSecurityGroupsHasBeenSet; } 812 813 /** 814 * <p>A list of additional Amazon EC2 security group IDs for the master node.</p> 815 */ SetAdditionalMasterSecurityGroups(const Aws::Vector<Aws::String> & value)816 inline void SetAdditionalMasterSecurityGroups(const Aws::Vector<Aws::String>& value) { m_additionalMasterSecurityGroupsHasBeenSet = true; m_additionalMasterSecurityGroups = value; } 817 818 /** 819 * <p>A list of additional Amazon EC2 security group IDs for the master node.</p> 820 */ SetAdditionalMasterSecurityGroups(Aws::Vector<Aws::String> && value)821 inline void SetAdditionalMasterSecurityGroups(Aws::Vector<Aws::String>&& value) { m_additionalMasterSecurityGroupsHasBeenSet = true; m_additionalMasterSecurityGroups = std::move(value); } 822 823 /** 824 * <p>A list of additional Amazon EC2 security group IDs for the master node.</p> 825 */ WithAdditionalMasterSecurityGroups(const Aws::Vector<Aws::String> & value)826 inline JobFlowInstancesConfig& WithAdditionalMasterSecurityGroups(const Aws::Vector<Aws::String>& value) { SetAdditionalMasterSecurityGroups(value); return *this;} 827 828 /** 829 * <p>A list of additional Amazon EC2 security group IDs for the master node.</p> 830 */ WithAdditionalMasterSecurityGroups(Aws::Vector<Aws::String> && value)831 inline JobFlowInstancesConfig& WithAdditionalMasterSecurityGroups(Aws::Vector<Aws::String>&& value) { SetAdditionalMasterSecurityGroups(std::move(value)); return *this;} 832 833 /** 834 * <p>A list of additional Amazon EC2 security group IDs for the master node.</p> 835 */ AddAdditionalMasterSecurityGroups(const Aws::String & value)836 inline JobFlowInstancesConfig& AddAdditionalMasterSecurityGroups(const Aws::String& value) { m_additionalMasterSecurityGroupsHasBeenSet = true; m_additionalMasterSecurityGroups.push_back(value); return *this; } 837 838 /** 839 * <p>A list of additional Amazon EC2 security group IDs for the master node.</p> 840 */ AddAdditionalMasterSecurityGroups(Aws::String && value)841 inline JobFlowInstancesConfig& AddAdditionalMasterSecurityGroups(Aws::String&& value) { m_additionalMasterSecurityGroupsHasBeenSet = true; m_additionalMasterSecurityGroups.push_back(std::move(value)); return *this; } 842 843 /** 844 * <p>A list of additional Amazon EC2 security group IDs for the master node.</p> 845 */ AddAdditionalMasterSecurityGroups(const char * value)846 inline JobFlowInstancesConfig& AddAdditionalMasterSecurityGroups(const char* value) { m_additionalMasterSecurityGroupsHasBeenSet = true; m_additionalMasterSecurityGroups.push_back(value); return *this; } 847 848 849 /** 850 * <p>A list of additional Amazon EC2 security group IDs for the core and task 851 * nodes.</p> 852 */ GetAdditionalSlaveSecurityGroups()853 inline const Aws::Vector<Aws::String>& GetAdditionalSlaveSecurityGroups() const{ return m_additionalSlaveSecurityGroups; } 854 855 /** 856 * <p>A list of additional Amazon EC2 security group IDs for the core and task 857 * nodes.</p> 858 */ AdditionalSlaveSecurityGroupsHasBeenSet()859 inline bool AdditionalSlaveSecurityGroupsHasBeenSet() const { return m_additionalSlaveSecurityGroupsHasBeenSet; } 860 861 /** 862 * <p>A list of additional Amazon EC2 security group IDs for the core and task 863 * nodes.</p> 864 */ SetAdditionalSlaveSecurityGroups(const Aws::Vector<Aws::String> & value)865 inline void SetAdditionalSlaveSecurityGroups(const Aws::Vector<Aws::String>& value) { m_additionalSlaveSecurityGroupsHasBeenSet = true; m_additionalSlaveSecurityGroups = value; } 866 867 /** 868 * <p>A list of additional Amazon EC2 security group IDs for the core and task 869 * nodes.</p> 870 */ SetAdditionalSlaveSecurityGroups(Aws::Vector<Aws::String> && value)871 inline void SetAdditionalSlaveSecurityGroups(Aws::Vector<Aws::String>&& value) { m_additionalSlaveSecurityGroupsHasBeenSet = true; m_additionalSlaveSecurityGroups = std::move(value); } 872 873 /** 874 * <p>A list of additional Amazon EC2 security group IDs for the core and task 875 * nodes.</p> 876 */ WithAdditionalSlaveSecurityGroups(const Aws::Vector<Aws::String> & value)877 inline JobFlowInstancesConfig& WithAdditionalSlaveSecurityGroups(const Aws::Vector<Aws::String>& value) { SetAdditionalSlaveSecurityGroups(value); return *this;} 878 879 /** 880 * <p>A list of additional Amazon EC2 security group IDs for the core and task 881 * nodes.</p> 882 */ WithAdditionalSlaveSecurityGroups(Aws::Vector<Aws::String> && value)883 inline JobFlowInstancesConfig& WithAdditionalSlaveSecurityGroups(Aws::Vector<Aws::String>&& value) { SetAdditionalSlaveSecurityGroups(std::move(value)); return *this;} 884 885 /** 886 * <p>A list of additional Amazon EC2 security group IDs for the core and task 887 * nodes.</p> 888 */ AddAdditionalSlaveSecurityGroups(const Aws::String & value)889 inline JobFlowInstancesConfig& AddAdditionalSlaveSecurityGroups(const Aws::String& value) { m_additionalSlaveSecurityGroupsHasBeenSet = true; m_additionalSlaveSecurityGroups.push_back(value); return *this; } 890 891 /** 892 * <p>A list of additional Amazon EC2 security group IDs for the core and task 893 * nodes.</p> 894 */ AddAdditionalSlaveSecurityGroups(Aws::String && value)895 inline JobFlowInstancesConfig& AddAdditionalSlaveSecurityGroups(Aws::String&& value) { m_additionalSlaveSecurityGroupsHasBeenSet = true; m_additionalSlaveSecurityGroups.push_back(std::move(value)); return *this; } 896 897 /** 898 * <p>A list of additional Amazon EC2 security group IDs for the core and task 899 * nodes.</p> 900 */ AddAdditionalSlaveSecurityGroups(const char * value)901 inline JobFlowInstancesConfig& AddAdditionalSlaveSecurityGroups(const char* value) { m_additionalSlaveSecurityGroupsHasBeenSet = true; m_additionalSlaveSecurityGroups.push_back(value); return *this; } 902 903 private: 904 905 Aws::String m_masterInstanceType; 906 bool m_masterInstanceTypeHasBeenSet; 907 908 Aws::String m_slaveInstanceType; 909 bool m_slaveInstanceTypeHasBeenSet; 910 911 int m_instanceCount; 912 bool m_instanceCountHasBeenSet; 913 914 Aws::Vector<InstanceGroupConfig> m_instanceGroups; 915 bool m_instanceGroupsHasBeenSet; 916 917 Aws::Vector<InstanceFleetConfig> m_instanceFleets; 918 bool m_instanceFleetsHasBeenSet; 919 920 Aws::String m_ec2KeyName; 921 bool m_ec2KeyNameHasBeenSet; 922 923 PlacementType m_placement; 924 bool m_placementHasBeenSet; 925 926 bool m_keepJobFlowAliveWhenNoSteps; 927 bool m_keepJobFlowAliveWhenNoStepsHasBeenSet; 928 929 bool m_terminationProtected; 930 bool m_terminationProtectedHasBeenSet; 931 932 Aws::String m_hadoopVersion; 933 bool m_hadoopVersionHasBeenSet; 934 935 Aws::String m_ec2SubnetId; 936 bool m_ec2SubnetIdHasBeenSet; 937 938 Aws::Vector<Aws::String> m_ec2SubnetIds; 939 bool m_ec2SubnetIdsHasBeenSet; 940 941 Aws::String m_emrManagedMasterSecurityGroup; 942 bool m_emrManagedMasterSecurityGroupHasBeenSet; 943 944 Aws::String m_emrManagedSlaveSecurityGroup; 945 bool m_emrManagedSlaveSecurityGroupHasBeenSet; 946 947 Aws::String m_serviceAccessSecurityGroup; 948 bool m_serviceAccessSecurityGroupHasBeenSet; 949 950 Aws::Vector<Aws::String> m_additionalMasterSecurityGroups; 951 bool m_additionalMasterSecurityGroupsHasBeenSet; 952 953 Aws::Vector<Aws::String> m_additionalSlaveSecurityGroups; 954 bool m_additionalSlaveSecurityGroupsHasBeenSet; 955 }; 956 957 } // namespace Model 958 } // namespace EMR 959 } // namespace Aws 960