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/kinesisanalyticsv2/KinesisAnalyticsV2_EXPORTS.h>
8 #include <aws/kinesisanalyticsv2/KinesisAnalyticsV2Request.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/kinesisanalyticsv2/model/Output.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace KinesisAnalyticsV2
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_KINESISANALYTICSV2_API AddApplicationOutputRequest : public KinesisAnalyticsV2Request
23   {
24   public:
25     AddApplicationOutputRequest();
26 
27     // Service request name is the Operation name which will send this request out,
28     // each operation should has unique request name, so that we can get operation's name from this request.
29     // Note: this is not true for response, multiple operations may have the same response name,
30     // so we can not get operation's name from response.
GetServiceRequestName()31     inline virtual const char* GetServiceRequestName() const override { return "AddApplicationOutput"; }
32 
33     Aws::String SerializePayload() const override;
34 
35     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
36 
37 
38     /**
39      * <p>The name of the application to which you want to add the output
40      * configuration.</p>
41      */
GetApplicationName()42     inline const Aws::String& GetApplicationName() const{ return m_applicationName; }
43 
44     /**
45      * <p>The name of the application to which you want to add the output
46      * configuration.</p>
47      */
ApplicationNameHasBeenSet()48     inline bool ApplicationNameHasBeenSet() const { return m_applicationNameHasBeenSet; }
49 
50     /**
51      * <p>The name of the application to which you want to add the output
52      * configuration.</p>
53      */
SetApplicationName(const Aws::String & value)54     inline void SetApplicationName(const Aws::String& value) { m_applicationNameHasBeenSet = true; m_applicationName = value; }
55 
56     /**
57      * <p>The name of the application to which you want to add the output
58      * configuration.</p>
59      */
SetApplicationName(Aws::String && value)60     inline void SetApplicationName(Aws::String&& value) { m_applicationNameHasBeenSet = true; m_applicationName = std::move(value); }
61 
62     /**
63      * <p>The name of the application to which you want to add the output
64      * configuration.</p>
65      */
SetApplicationName(const char * value)66     inline void SetApplicationName(const char* value) { m_applicationNameHasBeenSet = true; m_applicationName.assign(value); }
67 
68     /**
69      * <p>The name of the application to which you want to add the output
70      * configuration.</p>
71      */
WithApplicationName(const Aws::String & value)72     inline AddApplicationOutputRequest& WithApplicationName(const Aws::String& value) { SetApplicationName(value); return *this;}
73 
74     /**
75      * <p>The name of the application to which you want to add the output
76      * configuration.</p>
77      */
WithApplicationName(Aws::String && value)78     inline AddApplicationOutputRequest& WithApplicationName(Aws::String&& value) { SetApplicationName(std::move(value)); return *this;}
79 
80     /**
81      * <p>The name of the application to which you want to add the output
82      * configuration.</p>
83      */
WithApplicationName(const char * value)84     inline AddApplicationOutputRequest& WithApplicationName(const char* value) { SetApplicationName(value); return *this;}
85 
86 
87     /**
88      * <p>The version of the application to which you want to add the output
89      * configuration. You can use the <a>DescribeApplication</a> operation to get the
90      * current application version. If the version specified is not the current
91      * version, the <code>ConcurrentModificationException</code> is returned. </p>
92      */
GetCurrentApplicationVersionId()93     inline long long GetCurrentApplicationVersionId() const{ return m_currentApplicationVersionId; }
94 
95     /**
96      * <p>The version of the application to which you want to add the output
97      * configuration. You can use the <a>DescribeApplication</a> operation to get the
98      * current application version. If the version specified is not the current
99      * version, the <code>ConcurrentModificationException</code> is returned. </p>
100      */
CurrentApplicationVersionIdHasBeenSet()101     inline bool CurrentApplicationVersionIdHasBeenSet() const { return m_currentApplicationVersionIdHasBeenSet; }
102 
103     /**
104      * <p>The version of the application to which you want to add the output
105      * configuration. You can use the <a>DescribeApplication</a> operation to get the
106      * current application version. If the version specified is not the current
107      * version, the <code>ConcurrentModificationException</code> is returned. </p>
108      */
SetCurrentApplicationVersionId(long long value)109     inline void SetCurrentApplicationVersionId(long long value) { m_currentApplicationVersionIdHasBeenSet = true; m_currentApplicationVersionId = value; }
110 
111     /**
112      * <p>The version of the application to which you want to add the output
113      * configuration. You can use the <a>DescribeApplication</a> operation to get the
114      * current application version. If the version specified is not the current
115      * version, the <code>ConcurrentModificationException</code> is returned. </p>
116      */
WithCurrentApplicationVersionId(long long value)117     inline AddApplicationOutputRequest& WithCurrentApplicationVersionId(long long value) { SetCurrentApplicationVersionId(value); return *this;}
118 
119 
120     /**
121      * <p>An array of objects, each describing one output configuration. In the output
122      * configuration, you specify the name of an in-application stream, a destination
123      * (that is, a Kinesis data stream, a Kinesis Data Firehose delivery stream, or an
124      * Amazon Lambda function), and record the formation to use when writing to the
125      * destination.</p>
126      */
GetOutput()127     inline const Output& GetOutput() const{ return m_output; }
128 
129     /**
130      * <p>An array of objects, each describing one output configuration. In the output
131      * configuration, you specify the name of an in-application stream, a destination
132      * (that is, a Kinesis data stream, a Kinesis Data Firehose delivery stream, or an
133      * Amazon Lambda function), and record the formation to use when writing to the
134      * destination.</p>
135      */
OutputHasBeenSet()136     inline bool OutputHasBeenSet() const { return m_outputHasBeenSet; }
137 
138     /**
139      * <p>An array of objects, each describing one output configuration. In the output
140      * configuration, you specify the name of an in-application stream, a destination
141      * (that is, a Kinesis data stream, a Kinesis Data Firehose delivery stream, or an
142      * Amazon Lambda function), and record the formation to use when writing to the
143      * destination.</p>
144      */
SetOutput(const Output & value)145     inline void SetOutput(const Output& value) { m_outputHasBeenSet = true; m_output = value; }
146 
147     /**
148      * <p>An array of objects, each describing one output configuration. In the output
149      * configuration, you specify the name of an in-application stream, a destination
150      * (that is, a Kinesis data stream, a Kinesis Data Firehose delivery stream, or an
151      * Amazon Lambda function), and record the formation to use when writing to the
152      * destination.</p>
153      */
SetOutput(Output && value)154     inline void SetOutput(Output&& value) { m_outputHasBeenSet = true; m_output = std::move(value); }
155 
156     /**
157      * <p>An array of objects, each describing one output configuration. In the output
158      * configuration, you specify the name of an in-application stream, a destination
159      * (that is, a Kinesis data stream, a Kinesis Data Firehose delivery stream, or an
160      * Amazon Lambda function), and record the formation to use when writing to the
161      * destination.</p>
162      */
WithOutput(const Output & value)163     inline AddApplicationOutputRequest& WithOutput(const Output& value) { SetOutput(value); return *this;}
164 
165     /**
166      * <p>An array of objects, each describing one output configuration. In the output
167      * configuration, you specify the name of an in-application stream, a destination
168      * (that is, a Kinesis data stream, a Kinesis Data Firehose delivery stream, or an
169      * Amazon Lambda function), and record the formation to use when writing to the
170      * destination.</p>
171      */
WithOutput(Output && value)172     inline AddApplicationOutputRequest& WithOutput(Output&& value) { SetOutput(std::move(value)); return *this;}
173 
174   private:
175 
176     Aws::String m_applicationName;
177     bool m_applicationNameHasBeenSet;
178 
179     long long m_currentApplicationVersionId;
180     bool m_currentApplicationVersionIdHasBeenSet;
181 
182     Output m_output;
183     bool m_outputHasBeenSet;
184   };
185 
186 } // namespace Model
187 } // namespace KinesisAnalyticsV2
188 } // namespace Aws
189