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/firehose/Firehose_EXPORTS.h>
8 #include <aws/firehose/FirehoseRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/firehose/model/ExtendedS3DestinationUpdate.h>
11 #include <aws/firehose/model/RedshiftDestinationUpdate.h>
12 #include <aws/firehose/model/ElasticsearchDestinationUpdate.h>
13 #include <aws/firehose/model/AmazonopensearchserviceDestinationUpdate.h>
14 #include <aws/firehose/model/SplunkDestinationUpdate.h>
15 #include <aws/firehose/model/HttpEndpointDestinationUpdate.h>
16 #include <utility>
17 
18 namespace Aws
19 {
20 namespace Firehose
21 {
22 namespace Model
23 {
24 
25   /**
26    */
27   class AWS_FIREHOSE_API UpdateDestinationRequest : public FirehoseRequest
28   {
29   public:
30     UpdateDestinationRequest();
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 "UpdateDestination"; }
37 
38     Aws::String SerializePayload() const override;
39 
40     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
41 
42 
43     /**
44      * <p>The name of the delivery stream.</p>
45      */
GetDeliveryStreamName()46     inline const Aws::String& GetDeliveryStreamName() const{ return m_deliveryStreamName; }
47 
48     /**
49      * <p>The name of the delivery stream.</p>
50      */
DeliveryStreamNameHasBeenSet()51     inline bool DeliveryStreamNameHasBeenSet() const { return m_deliveryStreamNameHasBeenSet; }
52 
53     /**
54      * <p>The name of the delivery stream.</p>
55      */
SetDeliveryStreamName(const Aws::String & value)56     inline void SetDeliveryStreamName(const Aws::String& value) { m_deliveryStreamNameHasBeenSet = true; m_deliveryStreamName = value; }
57 
58     /**
59      * <p>The name of the delivery stream.</p>
60      */
SetDeliveryStreamName(Aws::String && value)61     inline void SetDeliveryStreamName(Aws::String&& value) { m_deliveryStreamNameHasBeenSet = true; m_deliveryStreamName = std::move(value); }
62 
63     /**
64      * <p>The name of the delivery stream.</p>
65      */
SetDeliveryStreamName(const char * value)66     inline void SetDeliveryStreamName(const char* value) { m_deliveryStreamNameHasBeenSet = true; m_deliveryStreamName.assign(value); }
67 
68     /**
69      * <p>The name of the delivery stream.</p>
70      */
WithDeliveryStreamName(const Aws::String & value)71     inline UpdateDestinationRequest& WithDeliveryStreamName(const Aws::String& value) { SetDeliveryStreamName(value); return *this;}
72 
73     /**
74      * <p>The name of the delivery stream.</p>
75      */
WithDeliveryStreamName(Aws::String && value)76     inline UpdateDestinationRequest& WithDeliveryStreamName(Aws::String&& value) { SetDeliveryStreamName(std::move(value)); return *this;}
77 
78     /**
79      * <p>The name of the delivery stream.</p>
80      */
WithDeliveryStreamName(const char * value)81     inline UpdateDestinationRequest& WithDeliveryStreamName(const char* value) { SetDeliveryStreamName(value); return *this;}
82 
83 
84     /**
85      * <p>Obtain this value from the <code>VersionId</code> result of
86      * <a>DeliveryStreamDescription</a>. This value is required, and helps the service
87      * perform conditional operations. For example, if there is an interleaving update
88      * and this value is null, then the update destination fails. After the update is
89      * successful, the <code>VersionId</code> value is updated. The service then
90      * performs a merge of the old configuration with the new configuration.</p>
91      */
GetCurrentDeliveryStreamVersionId()92     inline const Aws::String& GetCurrentDeliveryStreamVersionId() const{ return m_currentDeliveryStreamVersionId; }
93 
94     /**
95      * <p>Obtain this value from the <code>VersionId</code> result of
96      * <a>DeliveryStreamDescription</a>. This value is required, and helps the service
97      * perform conditional operations. For example, if there is an interleaving update
98      * and this value is null, then the update destination fails. After the update is
99      * successful, the <code>VersionId</code> value is updated. The service then
100      * performs a merge of the old configuration with the new configuration.</p>
101      */
CurrentDeliveryStreamVersionIdHasBeenSet()102     inline bool CurrentDeliveryStreamVersionIdHasBeenSet() const { return m_currentDeliveryStreamVersionIdHasBeenSet; }
103 
104     /**
105      * <p>Obtain this value from the <code>VersionId</code> result of
106      * <a>DeliveryStreamDescription</a>. This value is required, and helps the service
107      * perform conditional operations. For example, if there is an interleaving update
108      * and this value is null, then the update destination fails. After the update is
109      * successful, the <code>VersionId</code> value is updated. The service then
110      * performs a merge of the old configuration with the new configuration.</p>
111      */
SetCurrentDeliveryStreamVersionId(const Aws::String & value)112     inline void SetCurrentDeliveryStreamVersionId(const Aws::String& value) { m_currentDeliveryStreamVersionIdHasBeenSet = true; m_currentDeliveryStreamVersionId = value; }
113 
114     /**
115      * <p>Obtain this value from the <code>VersionId</code> result of
116      * <a>DeliveryStreamDescription</a>. This value is required, and helps the service
117      * perform conditional operations. For example, if there is an interleaving update
118      * and this value is null, then the update destination fails. After the update is
119      * successful, the <code>VersionId</code> value is updated. The service then
120      * performs a merge of the old configuration with the new configuration.</p>
121      */
SetCurrentDeliveryStreamVersionId(Aws::String && value)122     inline void SetCurrentDeliveryStreamVersionId(Aws::String&& value) { m_currentDeliveryStreamVersionIdHasBeenSet = true; m_currentDeliveryStreamVersionId = std::move(value); }
123 
124     /**
125      * <p>Obtain this value from the <code>VersionId</code> result of
126      * <a>DeliveryStreamDescription</a>. This value is required, and helps the service
127      * perform conditional operations. For example, if there is an interleaving update
128      * and this value is null, then the update destination fails. After the update is
129      * successful, the <code>VersionId</code> value is updated. The service then
130      * performs a merge of the old configuration with the new configuration.</p>
131      */
SetCurrentDeliveryStreamVersionId(const char * value)132     inline void SetCurrentDeliveryStreamVersionId(const char* value) { m_currentDeliveryStreamVersionIdHasBeenSet = true; m_currentDeliveryStreamVersionId.assign(value); }
133 
134     /**
135      * <p>Obtain this value from the <code>VersionId</code> result of
136      * <a>DeliveryStreamDescription</a>. This value is required, and helps the service
137      * perform conditional operations. For example, if there is an interleaving update
138      * and this value is null, then the update destination fails. After the update is
139      * successful, the <code>VersionId</code> value is updated. The service then
140      * performs a merge of the old configuration with the new configuration.</p>
141      */
WithCurrentDeliveryStreamVersionId(const Aws::String & value)142     inline UpdateDestinationRequest& WithCurrentDeliveryStreamVersionId(const Aws::String& value) { SetCurrentDeliveryStreamVersionId(value); return *this;}
143 
144     /**
145      * <p>Obtain this value from the <code>VersionId</code> result of
146      * <a>DeliveryStreamDescription</a>. This value is required, and helps the service
147      * perform conditional operations. For example, if there is an interleaving update
148      * and this value is null, then the update destination fails. After the update is
149      * successful, the <code>VersionId</code> value is updated. The service then
150      * performs a merge of the old configuration with the new configuration.</p>
151      */
WithCurrentDeliveryStreamVersionId(Aws::String && value)152     inline UpdateDestinationRequest& WithCurrentDeliveryStreamVersionId(Aws::String&& value) { SetCurrentDeliveryStreamVersionId(std::move(value)); return *this;}
153 
154     /**
155      * <p>Obtain this value from the <code>VersionId</code> result of
156      * <a>DeliveryStreamDescription</a>. This value is required, and helps the service
157      * perform conditional operations. For example, if there is an interleaving update
158      * and this value is null, then the update destination fails. After the update is
159      * successful, the <code>VersionId</code> value is updated. The service then
160      * performs a merge of the old configuration with the new configuration.</p>
161      */
WithCurrentDeliveryStreamVersionId(const char * value)162     inline UpdateDestinationRequest& WithCurrentDeliveryStreamVersionId(const char* value) { SetCurrentDeliveryStreamVersionId(value); return *this;}
163 
164 
165     /**
166      * <p>The ID of the destination.</p>
167      */
GetDestinationId()168     inline const Aws::String& GetDestinationId() const{ return m_destinationId; }
169 
170     /**
171      * <p>The ID of the destination.</p>
172      */
DestinationIdHasBeenSet()173     inline bool DestinationIdHasBeenSet() const { return m_destinationIdHasBeenSet; }
174 
175     /**
176      * <p>The ID of the destination.</p>
177      */
SetDestinationId(const Aws::String & value)178     inline void SetDestinationId(const Aws::String& value) { m_destinationIdHasBeenSet = true; m_destinationId = value; }
179 
180     /**
181      * <p>The ID of the destination.</p>
182      */
SetDestinationId(Aws::String && value)183     inline void SetDestinationId(Aws::String&& value) { m_destinationIdHasBeenSet = true; m_destinationId = std::move(value); }
184 
185     /**
186      * <p>The ID of the destination.</p>
187      */
SetDestinationId(const char * value)188     inline void SetDestinationId(const char* value) { m_destinationIdHasBeenSet = true; m_destinationId.assign(value); }
189 
190     /**
191      * <p>The ID of the destination.</p>
192      */
WithDestinationId(const Aws::String & value)193     inline UpdateDestinationRequest& WithDestinationId(const Aws::String& value) { SetDestinationId(value); return *this;}
194 
195     /**
196      * <p>The ID of the destination.</p>
197      */
WithDestinationId(Aws::String && value)198     inline UpdateDestinationRequest& WithDestinationId(Aws::String&& value) { SetDestinationId(std::move(value)); return *this;}
199 
200     /**
201      * <p>The ID of the destination.</p>
202      */
WithDestinationId(const char * value)203     inline UpdateDestinationRequest& WithDestinationId(const char* value) { SetDestinationId(value); return *this;}
204 
205 
206     /**
207      * <p>Describes an update for a destination in Amazon S3.</p>
208      */
GetExtendedS3DestinationUpdate()209     inline const ExtendedS3DestinationUpdate& GetExtendedS3DestinationUpdate() const{ return m_extendedS3DestinationUpdate; }
210 
211     /**
212      * <p>Describes an update for a destination in Amazon S3.</p>
213      */
ExtendedS3DestinationUpdateHasBeenSet()214     inline bool ExtendedS3DestinationUpdateHasBeenSet() const { return m_extendedS3DestinationUpdateHasBeenSet; }
215 
216     /**
217      * <p>Describes an update for a destination in Amazon S3.</p>
218      */
SetExtendedS3DestinationUpdate(const ExtendedS3DestinationUpdate & value)219     inline void SetExtendedS3DestinationUpdate(const ExtendedS3DestinationUpdate& value) { m_extendedS3DestinationUpdateHasBeenSet = true; m_extendedS3DestinationUpdate = value; }
220 
221     /**
222      * <p>Describes an update for a destination in Amazon S3.</p>
223      */
SetExtendedS3DestinationUpdate(ExtendedS3DestinationUpdate && value)224     inline void SetExtendedS3DestinationUpdate(ExtendedS3DestinationUpdate&& value) { m_extendedS3DestinationUpdateHasBeenSet = true; m_extendedS3DestinationUpdate = std::move(value); }
225 
226     /**
227      * <p>Describes an update for a destination in Amazon S3.</p>
228      */
WithExtendedS3DestinationUpdate(const ExtendedS3DestinationUpdate & value)229     inline UpdateDestinationRequest& WithExtendedS3DestinationUpdate(const ExtendedS3DestinationUpdate& value) { SetExtendedS3DestinationUpdate(value); return *this;}
230 
231     /**
232      * <p>Describes an update for a destination in Amazon S3.</p>
233      */
WithExtendedS3DestinationUpdate(ExtendedS3DestinationUpdate && value)234     inline UpdateDestinationRequest& WithExtendedS3DestinationUpdate(ExtendedS3DestinationUpdate&& value) { SetExtendedS3DestinationUpdate(std::move(value)); return *this;}
235 
236 
237     /**
238      * <p>Describes an update for a destination in Amazon Redshift.</p>
239      */
GetRedshiftDestinationUpdate()240     inline const RedshiftDestinationUpdate& GetRedshiftDestinationUpdate() const{ return m_redshiftDestinationUpdate; }
241 
242     /**
243      * <p>Describes an update for a destination in Amazon Redshift.</p>
244      */
RedshiftDestinationUpdateHasBeenSet()245     inline bool RedshiftDestinationUpdateHasBeenSet() const { return m_redshiftDestinationUpdateHasBeenSet; }
246 
247     /**
248      * <p>Describes an update for a destination in Amazon Redshift.</p>
249      */
SetRedshiftDestinationUpdate(const RedshiftDestinationUpdate & value)250     inline void SetRedshiftDestinationUpdate(const RedshiftDestinationUpdate& value) { m_redshiftDestinationUpdateHasBeenSet = true; m_redshiftDestinationUpdate = value; }
251 
252     /**
253      * <p>Describes an update for a destination in Amazon Redshift.</p>
254      */
SetRedshiftDestinationUpdate(RedshiftDestinationUpdate && value)255     inline void SetRedshiftDestinationUpdate(RedshiftDestinationUpdate&& value) { m_redshiftDestinationUpdateHasBeenSet = true; m_redshiftDestinationUpdate = std::move(value); }
256 
257     /**
258      * <p>Describes an update for a destination in Amazon Redshift.</p>
259      */
WithRedshiftDestinationUpdate(const RedshiftDestinationUpdate & value)260     inline UpdateDestinationRequest& WithRedshiftDestinationUpdate(const RedshiftDestinationUpdate& value) { SetRedshiftDestinationUpdate(value); return *this;}
261 
262     /**
263      * <p>Describes an update for a destination in Amazon Redshift.</p>
264      */
WithRedshiftDestinationUpdate(RedshiftDestinationUpdate && value)265     inline UpdateDestinationRequest& WithRedshiftDestinationUpdate(RedshiftDestinationUpdate&& value) { SetRedshiftDestinationUpdate(std::move(value)); return *this;}
266 
267 
268     /**
269      * <p>Describes an update for a destination in Amazon ES.</p>
270      */
GetElasticsearchDestinationUpdate()271     inline const ElasticsearchDestinationUpdate& GetElasticsearchDestinationUpdate() const{ return m_elasticsearchDestinationUpdate; }
272 
273     /**
274      * <p>Describes an update for a destination in Amazon ES.</p>
275      */
ElasticsearchDestinationUpdateHasBeenSet()276     inline bool ElasticsearchDestinationUpdateHasBeenSet() const { return m_elasticsearchDestinationUpdateHasBeenSet; }
277 
278     /**
279      * <p>Describes an update for a destination in Amazon ES.</p>
280      */
SetElasticsearchDestinationUpdate(const ElasticsearchDestinationUpdate & value)281     inline void SetElasticsearchDestinationUpdate(const ElasticsearchDestinationUpdate& value) { m_elasticsearchDestinationUpdateHasBeenSet = true; m_elasticsearchDestinationUpdate = value; }
282 
283     /**
284      * <p>Describes an update for a destination in Amazon ES.</p>
285      */
SetElasticsearchDestinationUpdate(ElasticsearchDestinationUpdate && value)286     inline void SetElasticsearchDestinationUpdate(ElasticsearchDestinationUpdate&& value) { m_elasticsearchDestinationUpdateHasBeenSet = true; m_elasticsearchDestinationUpdate = std::move(value); }
287 
288     /**
289      * <p>Describes an update for a destination in Amazon ES.</p>
290      */
WithElasticsearchDestinationUpdate(const ElasticsearchDestinationUpdate & value)291     inline UpdateDestinationRequest& WithElasticsearchDestinationUpdate(const ElasticsearchDestinationUpdate& value) { SetElasticsearchDestinationUpdate(value); return *this;}
292 
293     /**
294      * <p>Describes an update for a destination in Amazon ES.</p>
295      */
WithElasticsearchDestinationUpdate(ElasticsearchDestinationUpdate && value)296     inline UpdateDestinationRequest& WithElasticsearchDestinationUpdate(ElasticsearchDestinationUpdate&& value) { SetElasticsearchDestinationUpdate(std::move(value)); return *this;}
297 
298 
299 
GetAmazonopensearchserviceDestinationUpdate()300     inline const AmazonopensearchserviceDestinationUpdate& GetAmazonopensearchserviceDestinationUpdate() const{ return m_amazonopensearchserviceDestinationUpdate; }
301 
302 
AmazonopensearchserviceDestinationUpdateHasBeenSet()303     inline bool AmazonopensearchserviceDestinationUpdateHasBeenSet() const { return m_amazonopensearchserviceDestinationUpdateHasBeenSet; }
304 
305 
SetAmazonopensearchserviceDestinationUpdate(const AmazonopensearchserviceDestinationUpdate & value)306     inline void SetAmazonopensearchserviceDestinationUpdate(const AmazonopensearchserviceDestinationUpdate& value) { m_amazonopensearchserviceDestinationUpdateHasBeenSet = true; m_amazonopensearchserviceDestinationUpdate = value; }
307 
308 
SetAmazonopensearchserviceDestinationUpdate(AmazonopensearchserviceDestinationUpdate && value)309     inline void SetAmazonopensearchserviceDestinationUpdate(AmazonopensearchserviceDestinationUpdate&& value) { m_amazonopensearchserviceDestinationUpdateHasBeenSet = true; m_amazonopensearchserviceDestinationUpdate = std::move(value); }
310 
311 
WithAmazonopensearchserviceDestinationUpdate(const AmazonopensearchserviceDestinationUpdate & value)312     inline UpdateDestinationRequest& WithAmazonopensearchserviceDestinationUpdate(const AmazonopensearchserviceDestinationUpdate& value) { SetAmazonopensearchserviceDestinationUpdate(value); return *this;}
313 
314 
WithAmazonopensearchserviceDestinationUpdate(AmazonopensearchserviceDestinationUpdate && value)315     inline UpdateDestinationRequest& WithAmazonopensearchserviceDestinationUpdate(AmazonopensearchserviceDestinationUpdate&& value) { SetAmazonopensearchserviceDestinationUpdate(std::move(value)); return *this;}
316 
317 
318     /**
319      * <p>Describes an update for a destination in Splunk.</p>
320      */
GetSplunkDestinationUpdate()321     inline const SplunkDestinationUpdate& GetSplunkDestinationUpdate() const{ return m_splunkDestinationUpdate; }
322 
323     /**
324      * <p>Describes an update for a destination in Splunk.</p>
325      */
SplunkDestinationUpdateHasBeenSet()326     inline bool SplunkDestinationUpdateHasBeenSet() const { return m_splunkDestinationUpdateHasBeenSet; }
327 
328     /**
329      * <p>Describes an update for a destination in Splunk.</p>
330      */
SetSplunkDestinationUpdate(const SplunkDestinationUpdate & value)331     inline void SetSplunkDestinationUpdate(const SplunkDestinationUpdate& value) { m_splunkDestinationUpdateHasBeenSet = true; m_splunkDestinationUpdate = value; }
332 
333     /**
334      * <p>Describes an update for a destination in Splunk.</p>
335      */
SetSplunkDestinationUpdate(SplunkDestinationUpdate && value)336     inline void SetSplunkDestinationUpdate(SplunkDestinationUpdate&& value) { m_splunkDestinationUpdateHasBeenSet = true; m_splunkDestinationUpdate = std::move(value); }
337 
338     /**
339      * <p>Describes an update for a destination in Splunk.</p>
340      */
WithSplunkDestinationUpdate(const SplunkDestinationUpdate & value)341     inline UpdateDestinationRequest& WithSplunkDestinationUpdate(const SplunkDestinationUpdate& value) { SetSplunkDestinationUpdate(value); return *this;}
342 
343     /**
344      * <p>Describes an update for a destination in Splunk.</p>
345      */
WithSplunkDestinationUpdate(SplunkDestinationUpdate && value)346     inline UpdateDestinationRequest& WithSplunkDestinationUpdate(SplunkDestinationUpdate&& value) { SetSplunkDestinationUpdate(std::move(value)); return *this;}
347 
348 
349     /**
350      * <p>Describes an update to the specified HTTP endpoint destination.</p>
351      */
GetHttpEndpointDestinationUpdate()352     inline const HttpEndpointDestinationUpdate& GetHttpEndpointDestinationUpdate() const{ return m_httpEndpointDestinationUpdate; }
353 
354     /**
355      * <p>Describes an update to the specified HTTP endpoint destination.</p>
356      */
HttpEndpointDestinationUpdateHasBeenSet()357     inline bool HttpEndpointDestinationUpdateHasBeenSet() const { return m_httpEndpointDestinationUpdateHasBeenSet; }
358 
359     /**
360      * <p>Describes an update to the specified HTTP endpoint destination.</p>
361      */
SetHttpEndpointDestinationUpdate(const HttpEndpointDestinationUpdate & value)362     inline void SetHttpEndpointDestinationUpdate(const HttpEndpointDestinationUpdate& value) { m_httpEndpointDestinationUpdateHasBeenSet = true; m_httpEndpointDestinationUpdate = value; }
363 
364     /**
365      * <p>Describes an update to the specified HTTP endpoint destination.</p>
366      */
SetHttpEndpointDestinationUpdate(HttpEndpointDestinationUpdate && value)367     inline void SetHttpEndpointDestinationUpdate(HttpEndpointDestinationUpdate&& value) { m_httpEndpointDestinationUpdateHasBeenSet = true; m_httpEndpointDestinationUpdate = std::move(value); }
368 
369     /**
370      * <p>Describes an update to the specified HTTP endpoint destination.</p>
371      */
WithHttpEndpointDestinationUpdate(const HttpEndpointDestinationUpdate & value)372     inline UpdateDestinationRequest& WithHttpEndpointDestinationUpdate(const HttpEndpointDestinationUpdate& value) { SetHttpEndpointDestinationUpdate(value); return *this;}
373 
374     /**
375      * <p>Describes an update to the specified HTTP endpoint destination.</p>
376      */
WithHttpEndpointDestinationUpdate(HttpEndpointDestinationUpdate && value)377     inline UpdateDestinationRequest& WithHttpEndpointDestinationUpdate(HttpEndpointDestinationUpdate&& value) { SetHttpEndpointDestinationUpdate(std::move(value)); return *this;}
378 
379   private:
380 
381     Aws::String m_deliveryStreamName;
382     bool m_deliveryStreamNameHasBeenSet;
383 
384     Aws::String m_currentDeliveryStreamVersionId;
385     bool m_currentDeliveryStreamVersionIdHasBeenSet;
386 
387     Aws::String m_destinationId;
388     bool m_destinationIdHasBeenSet;
389 
390     ExtendedS3DestinationUpdate m_extendedS3DestinationUpdate;
391     bool m_extendedS3DestinationUpdateHasBeenSet;
392 
393     RedshiftDestinationUpdate m_redshiftDestinationUpdate;
394     bool m_redshiftDestinationUpdateHasBeenSet;
395 
396     ElasticsearchDestinationUpdate m_elasticsearchDestinationUpdate;
397     bool m_elasticsearchDestinationUpdateHasBeenSet;
398 
399     AmazonopensearchserviceDestinationUpdate m_amazonopensearchserviceDestinationUpdate;
400     bool m_amazonopensearchserviceDestinationUpdateHasBeenSet;
401 
402     SplunkDestinationUpdate m_splunkDestinationUpdate;
403     bool m_splunkDestinationUpdateHasBeenSet;
404 
405     HttpEndpointDestinationUpdate m_httpEndpointDestinationUpdate;
406     bool m_httpEndpointDestinationUpdateHasBeenSet;
407   };
408 
409 } // namespace Model
410 } // namespace Firehose
411 } // namespace Aws
412