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/core/utils/memory/stl/AWSVector.h>
11 #include <aws/elasticmapreduce/model/StepConfig.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace EMR
17 {
18 namespace Model
19 {
20 
21   /**
22    * <p> The input argument to the <a>AddJobFlowSteps</a> operation. </p><p><h3>See
23    * Also:</h3>   <a
24    * href="http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowStepsInput">AWS
25    * API Reference</a></p>
26    */
27   class AWS_EMR_API AddJobFlowStepsRequest : public EMRRequest
28   {
29   public:
30     AddJobFlowStepsRequest();
31 
32     // Service request name is the Operation name which will send this request out,
33     // each operation should has unique request name, so that we can get operation's name from this request.
34     // Note: this is not true for response, multiple operations may have the same response name,
35     // so we can not get operation's name from response.
GetServiceRequestName()36     inline virtual const char* GetServiceRequestName() const override { return "AddJobFlowSteps"; }
37 
38     Aws::String SerializePayload() const override;
39 
40     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
41 
42 
43     /**
44      * <p>A string that uniquely identifies the job flow. This identifier is returned
45      * by <a>RunJobFlow</a> and can also be obtained from <a>ListClusters</a>. </p>
46      */
GetJobFlowId()47     inline const Aws::String& GetJobFlowId() const{ return m_jobFlowId; }
48 
49     /**
50      * <p>A string that uniquely identifies the job flow. This identifier is returned
51      * by <a>RunJobFlow</a> and can also be obtained from <a>ListClusters</a>. </p>
52      */
JobFlowIdHasBeenSet()53     inline bool JobFlowIdHasBeenSet() const { return m_jobFlowIdHasBeenSet; }
54 
55     /**
56      * <p>A string that uniquely identifies the job flow. This identifier is returned
57      * by <a>RunJobFlow</a> and can also be obtained from <a>ListClusters</a>. </p>
58      */
SetJobFlowId(const Aws::String & value)59     inline void SetJobFlowId(const Aws::String& value) { m_jobFlowIdHasBeenSet = true; m_jobFlowId = value; }
60 
61     /**
62      * <p>A string that uniquely identifies the job flow. This identifier is returned
63      * by <a>RunJobFlow</a> and can also be obtained from <a>ListClusters</a>. </p>
64      */
SetJobFlowId(Aws::String && value)65     inline void SetJobFlowId(Aws::String&& value) { m_jobFlowIdHasBeenSet = true; m_jobFlowId = std::move(value); }
66 
67     /**
68      * <p>A string that uniquely identifies the job flow. This identifier is returned
69      * by <a>RunJobFlow</a> and can also be obtained from <a>ListClusters</a>. </p>
70      */
SetJobFlowId(const char * value)71     inline void SetJobFlowId(const char* value) { m_jobFlowIdHasBeenSet = true; m_jobFlowId.assign(value); }
72 
73     /**
74      * <p>A string that uniquely identifies the job flow. This identifier is returned
75      * by <a>RunJobFlow</a> and can also be obtained from <a>ListClusters</a>. </p>
76      */
WithJobFlowId(const Aws::String & value)77     inline AddJobFlowStepsRequest& WithJobFlowId(const Aws::String& value) { SetJobFlowId(value); return *this;}
78 
79     /**
80      * <p>A string that uniquely identifies the job flow. This identifier is returned
81      * by <a>RunJobFlow</a> and can also be obtained from <a>ListClusters</a>. </p>
82      */
WithJobFlowId(Aws::String && value)83     inline AddJobFlowStepsRequest& WithJobFlowId(Aws::String&& value) { SetJobFlowId(std::move(value)); return *this;}
84 
85     /**
86      * <p>A string that uniquely identifies the job flow. This identifier is returned
87      * by <a>RunJobFlow</a> and can also be obtained from <a>ListClusters</a>. </p>
88      */
WithJobFlowId(const char * value)89     inline AddJobFlowStepsRequest& WithJobFlowId(const char* value) { SetJobFlowId(value); return *this;}
90 
91 
92     /**
93      * <p> A list of <a>StepConfig</a> to be executed by the job flow. </p>
94      */
GetSteps()95     inline const Aws::Vector<StepConfig>& GetSteps() const{ return m_steps; }
96 
97     /**
98      * <p> A list of <a>StepConfig</a> to be executed by the job flow. </p>
99      */
StepsHasBeenSet()100     inline bool StepsHasBeenSet() const { return m_stepsHasBeenSet; }
101 
102     /**
103      * <p> A list of <a>StepConfig</a> to be executed by the job flow. </p>
104      */
SetSteps(const Aws::Vector<StepConfig> & value)105     inline void SetSteps(const Aws::Vector<StepConfig>& value) { m_stepsHasBeenSet = true; m_steps = value; }
106 
107     /**
108      * <p> A list of <a>StepConfig</a> to be executed by the job flow. </p>
109      */
SetSteps(Aws::Vector<StepConfig> && value)110     inline void SetSteps(Aws::Vector<StepConfig>&& value) { m_stepsHasBeenSet = true; m_steps = std::move(value); }
111 
112     /**
113      * <p> A list of <a>StepConfig</a> to be executed by the job flow. </p>
114      */
WithSteps(const Aws::Vector<StepConfig> & value)115     inline AddJobFlowStepsRequest& WithSteps(const Aws::Vector<StepConfig>& value) { SetSteps(value); return *this;}
116 
117     /**
118      * <p> A list of <a>StepConfig</a> to be executed by the job flow. </p>
119      */
WithSteps(Aws::Vector<StepConfig> && value)120     inline AddJobFlowStepsRequest& WithSteps(Aws::Vector<StepConfig>&& value) { SetSteps(std::move(value)); return *this;}
121 
122     /**
123      * <p> A list of <a>StepConfig</a> to be executed by the job flow. </p>
124      */
AddSteps(const StepConfig & value)125     inline AddJobFlowStepsRequest& AddSteps(const StepConfig& value) { m_stepsHasBeenSet = true; m_steps.push_back(value); return *this; }
126 
127     /**
128      * <p> A list of <a>StepConfig</a> to be executed by the job flow. </p>
129      */
AddSteps(StepConfig && value)130     inline AddJobFlowStepsRequest& AddSteps(StepConfig&& value) { m_stepsHasBeenSet = true; m_steps.push_back(std::move(value)); return *this; }
131 
132   private:
133 
134     Aws::String m_jobFlowId;
135     bool m_jobFlowIdHasBeenSet;
136 
137     Aws::Vector<StepConfig> m_steps;
138     bool m_stepsHasBeenSet;
139   };
140 
141 } // namespace Model
142 } // namespace EMR
143 } // namespace Aws
144