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/core/utils/memory/stl/AWSString.h>
9 #include <aws/firehose/model/DeliveryStreamStatus.h>
10 #include <aws/firehose/model/FailureDescription.h>
11 #include <aws/firehose/model/DeliveryStreamEncryptionConfiguration.h>
12 #include <aws/firehose/model/DeliveryStreamType.h>
13 #include <aws/core/utils/DateTime.h>
14 #include <aws/firehose/model/SourceDescription.h>
15 #include <aws/core/utils/memory/stl/AWSVector.h>
16 #include <aws/firehose/model/DestinationDescription.h>
17 #include <utility>
18 
19 namespace Aws
20 {
21 namespace Utils
22 {
23 namespace Json
24 {
25   class JsonValue;
26   class JsonView;
27 } // namespace Json
28 } // namespace Utils
29 namespace Firehose
30 {
31 namespace Model
32 {
33 
34   /**
35    * <p>Contains information about a delivery stream.</p><p><h3>See Also:</h3>   <a
36    * href="http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DeliveryStreamDescription">AWS
37    * API Reference</a></p>
38    */
39   class AWS_FIREHOSE_API DeliveryStreamDescription
40   {
41   public:
42     DeliveryStreamDescription();
43     DeliveryStreamDescription(Aws::Utils::Json::JsonView jsonValue);
44     DeliveryStreamDescription& operator=(Aws::Utils::Json::JsonView jsonValue);
45     Aws::Utils::Json::JsonValue Jsonize() const;
46 
47 
48     /**
49      * <p>The name of the delivery stream.</p>
50      */
GetDeliveryStreamName()51     inline const Aws::String& GetDeliveryStreamName() const{ return m_deliveryStreamName; }
52 
53     /**
54      * <p>The name of the delivery stream.</p>
55      */
DeliveryStreamNameHasBeenSet()56     inline bool DeliveryStreamNameHasBeenSet() const { return m_deliveryStreamNameHasBeenSet; }
57 
58     /**
59      * <p>The name of the delivery stream.</p>
60      */
SetDeliveryStreamName(const Aws::String & value)61     inline void SetDeliveryStreamName(const Aws::String& value) { m_deliveryStreamNameHasBeenSet = true; m_deliveryStreamName = value; }
62 
63     /**
64      * <p>The name of the delivery stream.</p>
65      */
SetDeliveryStreamName(Aws::String && value)66     inline void SetDeliveryStreamName(Aws::String&& value) { m_deliveryStreamNameHasBeenSet = true; m_deliveryStreamName = std::move(value); }
67 
68     /**
69      * <p>The name of the delivery stream.</p>
70      */
SetDeliveryStreamName(const char * value)71     inline void SetDeliveryStreamName(const char* value) { m_deliveryStreamNameHasBeenSet = true; m_deliveryStreamName.assign(value); }
72 
73     /**
74      * <p>The name of the delivery stream.</p>
75      */
WithDeliveryStreamName(const Aws::String & value)76     inline DeliveryStreamDescription& WithDeliveryStreamName(const Aws::String& value) { SetDeliveryStreamName(value); return *this;}
77 
78     /**
79      * <p>The name of the delivery stream.</p>
80      */
WithDeliveryStreamName(Aws::String && value)81     inline DeliveryStreamDescription& WithDeliveryStreamName(Aws::String&& value) { SetDeliveryStreamName(std::move(value)); return *this;}
82 
83     /**
84      * <p>The name of the delivery stream.</p>
85      */
WithDeliveryStreamName(const char * value)86     inline DeliveryStreamDescription& WithDeliveryStreamName(const char* value) { SetDeliveryStreamName(value); return *this;}
87 
88 
89     /**
90      * <p>The Amazon Resource Name (ARN) of the delivery stream. For more information,
91      * see <a
92      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
93      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
94      */
GetDeliveryStreamARN()95     inline const Aws::String& GetDeliveryStreamARN() const{ return m_deliveryStreamARN; }
96 
97     /**
98      * <p>The Amazon Resource Name (ARN) of the delivery stream. For more information,
99      * see <a
100      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
101      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
102      */
DeliveryStreamARNHasBeenSet()103     inline bool DeliveryStreamARNHasBeenSet() const { return m_deliveryStreamARNHasBeenSet; }
104 
105     /**
106      * <p>The Amazon Resource Name (ARN) of the delivery stream. For more information,
107      * see <a
108      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
109      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
110      */
SetDeliveryStreamARN(const Aws::String & value)111     inline void SetDeliveryStreamARN(const Aws::String& value) { m_deliveryStreamARNHasBeenSet = true; m_deliveryStreamARN = value; }
112 
113     /**
114      * <p>The Amazon Resource Name (ARN) of the delivery stream. For more information,
115      * see <a
116      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
117      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
118      */
SetDeliveryStreamARN(Aws::String && value)119     inline void SetDeliveryStreamARN(Aws::String&& value) { m_deliveryStreamARNHasBeenSet = true; m_deliveryStreamARN = std::move(value); }
120 
121     /**
122      * <p>The Amazon Resource Name (ARN) of the delivery stream. For more information,
123      * see <a
124      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
125      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
126      */
SetDeliveryStreamARN(const char * value)127     inline void SetDeliveryStreamARN(const char* value) { m_deliveryStreamARNHasBeenSet = true; m_deliveryStreamARN.assign(value); }
128 
129     /**
130      * <p>The Amazon Resource Name (ARN) of the delivery stream. For more information,
131      * see <a
132      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
133      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
134      */
WithDeliveryStreamARN(const Aws::String & value)135     inline DeliveryStreamDescription& WithDeliveryStreamARN(const Aws::String& value) { SetDeliveryStreamARN(value); return *this;}
136 
137     /**
138      * <p>The Amazon Resource Name (ARN) of the delivery stream. For more information,
139      * see <a
140      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
141      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
142      */
WithDeliveryStreamARN(Aws::String && value)143     inline DeliveryStreamDescription& WithDeliveryStreamARN(Aws::String&& value) { SetDeliveryStreamARN(std::move(value)); return *this;}
144 
145     /**
146      * <p>The Amazon Resource Name (ARN) of the delivery stream. For more information,
147      * see <a
148      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
149      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
150      */
WithDeliveryStreamARN(const char * value)151     inline DeliveryStreamDescription& WithDeliveryStreamARN(const char* value) { SetDeliveryStreamARN(value); return *this;}
152 
153 
154     /**
155      * <p>The status of the delivery stream. If the status of a delivery stream is
156      * <code>CREATING_FAILED</code>, this status doesn't change, and you can't invoke
157      * <code>CreateDeliveryStream</code> again on it. However, you can invoke the
158      * <a>DeleteDeliveryStream</a> operation to delete it.</p>
159      */
GetDeliveryStreamStatus()160     inline const DeliveryStreamStatus& GetDeliveryStreamStatus() const{ return m_deliveryStreamStatus; }
161 
162     /**
163      * <p>The status of the delivery stream. If the status of a delivery stream is
164      * <code>CREATING_FAILED</code>, this status doesn't change, and you can't invoke
165      * <code>CreateDeliveryStream</code> again on it. However, you can invoke the
166      * <a>DeleteDeliveryStream</a> operation to delete it.</p>
167      */
DeliveryStreamStatusHasBeenSet()168     inline bool DeliveryStreamStatusHasBeenSet() const { return m_deliveryStreamStatusHasBeenSet; }
169 
170     /**
171      * <p>The status of the delivery stream. If the status of a delivery stream is
172      * <code>CREATING_FAILED</code>, this status doesn't change, and you can't invoke
173      * <code>CreateDeliveryStream</code> again on it. However, you can invoke the
174      * <a>DeleteDeliveryStream</a> operation to delete it.</p>
175      */
SetDeliveryStreamStatus(const DeliveryStreamStatus & value)176     inline void SetDeliveryStreamStatus(const DeliveryStreamStatus& value) { m_deliveryStreamStatusHasBeenSet = true; m_deliveryStreamStatus = value; }
177 
178     /**
179      * <p>The status of the delivery stream. If the status of a delivery stream is
180      * <code>CREATING_FAILED</code>, this status doesn't change, and you can't invoke
181      * <code>CreateDeliveryStream</code> again on it. However, you can invoke the
182      * <a>DeleteDeliveryStream</a> operation to delete it.</p>
183      */
SetDeliveryStreamStatus(DeliveryStreamStatus && value)184     inline void SetDeliveryStreamStatus(DeliveryStreamStatus&& value) { m_deliveryStreamStatusHasBeenSet = true; m_deliveryStreamStatus = std::move(value); }
185 
186     /**
187      * <p>The status of the delivery stream. If the status of a delivery stream is
188      * <code>CREATING_FAILED</code>, this status doesn't change, and you can't invoke
189      * <code>CreateDeliveryStream</code> again on it. However, you can invoke the
190      * <a>DeleteDeliveryStream</a> operation to delete it.</p>
191      */
WithDeliveryStreamStatus(const DeliveryStreamStatus & value)192     inline DeliveryStreamDescription& WithDeliveryStreamStatus(const DeliveryStreamStatus& value) { SetDeliveryStreamStatus(value); return *this;}
193 
194     /**
195      * <p>The status of the delivery stream. If the status of a delivery stream is
196      * <code>CREATING_FAILED</code>, this status doesn't change, and you can't invoke
197      * <code>CreateDeliveryStream</code> again on it. However, you can invoke the
198      * <a>DeleteDeliveryStream</a> operation to delete it.</p>
199      */
WithDeliveryStreamStatus(DeliveryStreamStatus && value)200     inline DeliveryStreamDescription& WithDeliveryStreamStatus(DeliveryStreamStatus&& value) { SetDeliveryStreamStatus(std::move(value)); return *this;}
201 
202 
203     /**
204      * <p>Provides details in case one of the following operations fails due to an
205      * error related to KMS: <a>CreateDeliveryStream</a>, <a>DeleteDeliveryStream</a>,
206      * <a>StartDeliveryStreamEncryption</a>, <a>StopDeliveryStreamEncryption</a>.</p>
207      */
GetFailureDescription()208     inline const FailureDescription& GetFailureDescription() const{ return m_failureDescription; }
209 
210     /**
211      * <p>Provides details in case one of the following operations fails due to an
212      * error related to KMS: <a>CreateDeliveryStream</a>, <a>DeleteDeliveryStream</a>,
213      * <a>StartDeliveryStreamEncryption</a>, <a>StopDeliveryStreamEncryption</a>.</p>
214      */
FailureDescriptionHasBeenSet()215     inline bool FailureDescriptionHasBeenSet() const { return m_failureDescriptionHasBeenSet; }
216 
217     /**
218      * <p>Provides details in case one of the following operations fails due to an
219      * error related to KMS: <a>CreateDeliveryStream</a>, <a>DeleteDeliveryStream</a>,
220      * <a>StartDeliveryStreamEncryption</a>, <a>StopDeliveryStreamEncryption</a>.</p>
221      */
SetFailureDescription(const FailureDescription & value)222     inline void SetFailureDescription(const FailureDescription& value) { m_failureDescriptionHasBeenSet = true; m_failureDescription = value; }
223 
224     /**
225      * <p>Provides details in case one of the following operations fails due to an
226      * error related to KMS: <a>CreateDeliveryStream</a>, <a>DeleteDeliveryStream</a>,
227      * <a>StartDeliveryStreamEncryption</a>, <a>StopDeliveryStreamEncryption</a>.</p>
228      */
SetFailureDescription(FailureDescription && value)229     inline void SetFailureDescription(FailureDescription&& value) { m_failureDescriptionHasBeenSet = true; m_failureDescription = std::move(value); }
230 
231     /**
232      * <p>Provides details in case one of the following operations fails due to an
233      * error related to KMS: <a>CreateDeliveryStream</a>, <a>DeleteDeliveryStream</a>,
234      * <a>StartDeliveryStreamEncryption</a>, <a>StopDeliveryStreamEncryption</a>.</p>
235      */
WithFailureDescription(const FailureDescription & value)236     inline DeliveryStreamDescription& WithFailureDescription(const FailureDescription& value) { SetFailureDescription(value); return *this;}
237 
238     /**
239      * <p>Provides details in case one of the following operations fails due to an
240      * error related to KMS: <a>CreateDeliveryStream</a>, <a>DeleteDeliveryStream</a>,
241      * <a>StartDeliveryStreamEncryption</a>, <a>StopDeliveryStreamEncryption</a>.</p>
242      */
WithFailureDescription(FailureDescription && value)243     inline DeliveryStreamDescription& WithFailureDescription(FailureDescription&& value) { SetFailureDescription(std::move(value)); return *this;}
244 
245 
246     /**
247      * <p>Indicates the server-side encryption (SSE) status for the delivery
248      * stream.</p>
249      */
GetDeliveryStreamEncryptionConfiguration()250     inline const DeliveryStreamEncryptionConfiguration& GetDeliveryStreamEncryptionConfiguration() const{ return m_deliveryStreamEncryptionConfiguration; }
251 
252     /**
253      * <p>Indicates the server-side encryption (SSE) status for the delivery
254      * stream.</p>
255      */
DeliveryStreamEncryptionConfigurationHasBeenSet()256     inline bool DeliveryStreamEncryptionConfigurationHasBeenSet() const { return m_deliveryStreamEncryptionConfigurationHasBeenSet; }
257 
258     /**
259      * <p>Indicates the server-side encryption (SSE) status for the delivery
260      * stream.</p>
261      */
SetDeliveryStreamEncryptionConfiguration(const DeliveryStreamEncryptionConfiguration & value)262     inline void SetDeliveryStreamEncryptionConfiguration(const DeliveryStreamEncryptionConfiguration& value) { m_deliveryStreamEncryptionConfigurationHasBeenSet = true; m_deliveryStreamEncryptionConfiguration = value; }
263 
264     /**
265      * <p>Indicates the server-side encryption (SSE) status for the delivery
266      * stream.</p>
267      */
SetDeliveryStreamEncryptionConfiguration(DeliveryStreamEncryptionConfiguration && value)268     inline void SetDeliveryStreamEncryptionConfiguration(DeliveryStreamEncryptionConfiguration&& value) { m_deliveryStreamEncryptionConfigurationHasBeenSet = true; m_deliveryStreamEncryptionConfiguration = std::move(value); }
269 
270     /**
271      * <p>Indicates the server-side encryption (SSE) status for the delivery
272      * stream.</p>
273      */
WithDeliveryStreamEncryptionConfiguration(const DeliveryStreamEncryptionConfiguration & value)274     inline DeliveryStreamDescription& WithDeliveryStreamEncryptionConfiguration(const DeliveryStreamEncryptionConfiguration& value) { SetDeliveryStreamEncryptionConfiguration(value); return *this;}
275 
276     /**
277      * <p>Indicates the server-side encryption (SSE) status for the delivery
278      * stream.</p>
279      */
WithDeliveryStreamEncryptionConfiguration(DeliveryStreamEncryptionConfiguration && value)280     inline DeliveryStreamDescription& WithDeliveryStreamEncryptionConfiguration(DeliveryStreamEncryptionConfiguration&& value) { SetDeliveryStreamEncryptionConfiguration(std::move(value)); return *this;}
281 
282 
283     /**
284      * <p>The delivery stream type. This can be one of the following values:</p> <ul>
285      * <li> <p> <code>DirectPut</code>: Provider applications access the delivery
286      * stream directly.</p> </li> <li> <p> <code>KinesisStreamAsSource</code>: The
287      * delivery stream uses a Kinesis data stream as a source.</p> </li> </ul>
288      */
GetDeliveryStreamType()289     inline const DeliveryStreamType& GetDeliveryStreamType() const{ return m_deliveryStreamType; }
290 
291     /**
292      * <p>The delivery stream type. This can be one of the following values:</p> <ul>
293      * <li> <p> <code>DirectPut</code>: Provider applications access the delivery
294      * stream directly.</p> </li> <li> <p> <code>KinesisStreamAsSource</code>: The
295      * delivery stream uses a Kinesis data stream as a source.</p> </li> </ul>
296      */
DeliveryStreamTypeHasBeenSet()297     inline bool DeliveryStreamTypeHasBeenSet() const { return m_deliveryStreamTypeHasBeenSet; }
298 
299     /**
300      * <p>The delivery stream type. This can be one of the following values:</p> <ul>
301      * <li> <p> <code>DirectPut</code>: Provider applications access the delivery
302      * stream directly.</p> </li> <li> <p> <code>KinesisStreamAsSource</code>: The
303      * delivery stream uses a Kinesis data stream as a source.</p> </li> </ul>
304      */
SetDeliveryStreamType(const DeliveryStreamType & value)305     inline void SetDeliveryStreamType(const DeliveryStreamType& value) { m_deliveryStreamTypeHasBeenSet = true; m_deliveryStreamType = value; }
306 
307     /**
308      * <p>The delivery stream type. This can be one of the following values:</p> <ul>
309      * <li> <p> <code>DirectPut</code>: Provider applications access the delivery
310      * stream directly.</p> </li> <li> <p> <code>KinesisStreamAsSource</code>: The
311      * delivery stream uses a Kinesis data stream as a source.</p> </li> </ul>
312      */
SetDeliveryStreamType(DeliveryStreamType && value)313     inline void SetDeliveryStreamType(DeliveryStreamType&& value) { m_deliveryStreamTypeHasBeenSet = true; m_deliveryStreamType = std::move(value); }
314 
315     /**
316      * <p>The delivery stream type. This can be one of the following values:</p> <ul>
317      * <li> <p> <code>DirectPut</code>: Provider applications access the delivery
318      * stream directly.</p> </li> <li> <p> <code>KinesisStreamAsSource</code>: The
319      * delivery stream uses a Kinesis data stream as a source.</p> </li> </ul>
320      */
WithDeliveryStreamType(const DeliveryStreamType & value)321     inline DeliveryStreamDescription& WithDeliveryStreamType(const DeliveryStreamType& value) { SetDeliveryStreamType(value); return *this;}
322 
323     /**
324      * <p>The delivery stream type. This can be one of the following values:</p> <ul>
325      * <li> <p> <code>DirectPut</code>: Provider applications access the delivery
326      * stream directly.</p> </li> <li> <p> <code>KinesisStreamAsSource</code>: The
327      * delivery stream uses a Kinesis data stream as a source.</p> </li> </ul>
328      */
WithDeliveryStreamType(DeliveryStreamType && value)329     inline DeliveryStreamDescription& WithDeliveryStreamType(DeliveryStreamType&& value) { SetDeliveryStreamType(std::move(value)); return *this;}
330 
331 
332     /**
333      * <p>Each time the destination is updated for a delivery stream, the version ID is
334      * changed, and the current version ID is required when updating the destination.
335      * This is so that the service knows it is applying the changes to the correct
336      * version of the delivery stream.</p>
337      */
GetVersionId()338     inline const Aws::String& GetVersionId() const{ return m_versionId; }
339 
340     /**
341      * <p>Each time the destination is updated for a delivery stream, the version ID is
342      * changed, and the current version ID is required when updating the destination.
343      * This is so that the service knows it is applying the changes to the correct
344      * version of the delivery stream.</p>
345      */
VersionIdHasBeenSet()346     inline bool VersionIdHasBeenSet() const { return m_versionIdHasBeenSet; }
347 
348     /**
349      * <p>Each time the destination is updated for a delivery stream, the version ID is
350      * changed, and the current version ID is required when updating the destination.
351      * This is so that the service knows it is applying the changes to the correct
352      * version of the delivery stream.</p>
353      */
SetVersionId(const Aws::String & value)354     inline void SetVersionId(const Aws::String& value) { m_versionIdHasBeenSet = true; m_versionId = value; }
355 
356     /**
357      * <p>Each time the destination is updated for a delivery stream, the version ID is
358      * changed, and the current version ID is required when updating the destination.
359      * This is so that the service knows it is applying the changes to the correct
360      * version of the delivery stream.</p>
361      */
SetVersionId(Aws::String && value)362     inline void SetVersionId(Aws::String&& value) { m_versionIdHasBeenSet = true; m_versionId = std::move(value); }
363 
364     /**
365      * <p>Each time the destination is updated for a delivery stream, the version ID is
366      * changed, and the current version ID is required when updating the destination.
367      * This is so that the service knows it is applying the changes to the correct
368      * version of the delivery stream.</p>
369      */
SetVersionId(const char * value)370     inline void SetVersionId(const char* value) { m_versionIdHasBeenSet = true; m_versionId.assign(value); }
371 
372     /**
373      * <p>Each time the destination is updated for a delivery stream, the version ID is
374      * changed, and the current version ID is required when updating the destination.
375      * This is so that the service knows it is applying the changes to the correct
376      * version of the delivery stream.</p>
377      */
WithVersionId(const Aws::String & value)378     inline DeliveryStreamDescription& WithVersionId(const Aws::String& value) { SetVersionId(value); return *this;}
379 
380     /**
381      * <p>Each time the destination is updated for a delivery stream, the version ID is
382      * changed, and the current version ID is required when updating the destination.
383      * This is so that the service knows it is applying the changes to the correct
384      * version of the delivery stream.</p>
385      */
WithVersionId(Aws::String && value)386     inline DeliveryStreamDescription& WithVersionId(Aws::String&& value) { SetVersionId(std::move(value)); return *this;}
387 
388     /**
389      * <p>Each time the destination is updated for a delivery stream, the version ID is
390      * changed, and the current version ID is required when updating the destination.
391      * This is so that the service knows it is applying the changes to the correct
392      * version of the delivery stream.</p>
393      */
WithVersionId(const char * value)394     inline DeliveryStreamDescription& WithVersionId(const char* value) { SetVersionId(value); return *this;}
395 
396 
397     /**
398      * <p>The date and time that the delivery stream was created.</p>
399      */
GetCreateTimestamp()400     inline const Aws::Utils::DateTime& GetCreateTimestamp() const{ return m_createTimestamp; }
401 
402     /**
403      * <p>The date and time that the delivery stream was created.</p>
404      */
CreateTimestampHasBeenSet()405     inline bool CreateTimestampHasBeenSet() const { return m_createTimestampHasBeenSet; }
406 
407     /**
408      * <p>The date and time that the delivery stream was created.</p>
409      */
SetCreateTimestamp(const Aws::Utils::DateTime & value)410     inline void SetCreateTimestamp(const Aws::Utils::DateTime& value) { m_createTimestampHasBeenSet = true; m_createTimestamp = value; }
411 
412     /**
413      * <p>The date and time that the delivery stream was created.</p>
414      */
SetCreateTimestamp(Aws::Utils::DateTime && value)415     inline void SetCreateTimestamp(Aws::Utils::DateTime&& value) { m_createTimestampHasBeenSet = true; m_createTimestamp = std::move(value); }
416 
417     /**
418      * <p>The date and time that the delivery stream was created.</p>
419      */
WithCreateTimestamp(const Aws::Utils::DateTime & value)420     inline DeliveryStreamDescription& WithCreateTimestamp(const Aws::Utils::DateTime& value) { SetCreateTimestamp(value); return *this;}
421 
422     /**
423      * <p>The date and time that the delivery stream was created.</p>
424      */
WithCreateTimestamp(Aws::Utils::DateTime && value)425     inline DeliveryStreamDescription& WithCreateTimestamp(Aws::Utils::DateTime&& value) { SetCreateTimestamp(std::move(value)); return *this;}
426 
427 
428     /**
429      * <p>The date and time that the delivery stream was last updated.</p>
430      */
GetLastUpdateTimestamp()431     inline const Aws::Utils::DateTime& GetLastUpdateTimestamp() const{ return m_lastUpdateTimestamp; }
432 
433     /**
434      * <p>The date and time that the delivery stream was last updated.</p>
435      */
LastUpdateTimestampHasBeenSet()436     inline bool LastUpdateTimestampHasBeenSet() const { return m_lastUpdateTimestampHasBeenSet; }
437 
438     /**
439      * <p>The date and time that the delivery stream was last updated.</p>
440      */
SetLastUpdateTimestamp(const Aws::Utils::DateTime & value)441     inline void SetLastUpdateTimestamp(const Aws::Utils::DateTime& value) { m_lastUpdateTimestampHasBeenSet = true; m_lastUpdateTimestamp = value; }
442 
443     /**
444      * <p>The date and time that the delivery stream was last updated.</p>
445      */
SetLastUpdateTimestamp(Aws::Utils::DateTime && value)446     inline void SetLastUpdateTimestamp(Aws::Utils::DateTime&& value) { m_lastUpdateTimestampHasBeenSet = true; m_lastUpdateTimestamp = std::move(value); }
447 
448     /**
449      * <p>The date and time that the delivery stream was last updated.</p>
450      */
WithLastUpdateTimestamp(const Aws::Utils::DateTime & value)451     inline DeliveryStreamDescription& WithLastUpdateTimestamp(const Aws::Utils::DateTime& value) { SetLastUpdateTimestamp(value); return *this;}
452 
453     /**
454      * <p>The date and time that the delivery stream was last updated.</p>
455      */
WithLastUpdateTimestamp(Aws::Utils::DateTime && value)456     inline DeliveryStreamDescription& WithLastUpdateTimestamp(Aws::Utils::DateTime&& value) { SetLastUpdateTimestamp(std::move(value)); return *this;}
457 
458 
459     /**
460      * <p>If the <code>DeliveryStreamType</code> parameter is
461      * <code>KinesisStreamAsSource</code>, a <a>SourceDescription</a> object describing
462      * the source Kinesis data stream.</p>
463      */
GetSource()464     inline const SourceDescription& GetSource() const{ return m_source; }
465 
466     /**
467      * <p>If the <code>DeliveryStreamType</code> parameter is
468      * <code>KinesisStreamAsSource</code>, a <a>SourceDescription</a> object describing
469      * the source Kinesis data stream.</p>
470      */
SourceHasBeenSet()471     inline bool SourceHasBeenSet() const { return m_sourceHasBeenSet; }
472 
473     /**
474      * <p>If the <code>DeliveryStreamType</code> parameter is
475      * <code>KinesisStreamAsSource</code>, a <a>SourceDescription</a> object describing
476      * the source Kinesis data stream.</p>
477      */
SetSource(const SourceDescription & value)478     inline void SetSource(const SourceDescription& value) { m_sourceHasBeenSet = true; m_source = value; }
479 
480     /**
481      * <p>If the <code>DeliveryStreamType</code> parameter is
482      * <code>KinesisStreamAsSource</code>, a <a>SourceDescription</a> object describing
483      * the source Kinesis data stream.</p>
484      */
SetSource(SourceDescription && value)485     inline void SetSource(SourceDescription&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); }
486 
487     /**
488      * <p>If the <code>DeliveryStreamType</code> parameter is
489      * <code>KinesisStreamAsSource</code>, a <a>SourceDescription</a> object describing
490      * the source Kinesis data stream.</p>
491      */
WithSource(const SourceDescription & value)492     inline DeliveryStreamDescription& WithSource(const SourceDescription& value) { SetSource(value); return *this;}
493 
494     /**
495      * <p>If the <code>DeliveryStreamType</code> parameter is
496      * <code>KinesisStreamAsSource</code>, a <a>SourceDescription</a> object describing
497      * the source Kinesis data stream.</p>
498      */
WithSource(SourceDescription && value)499     inline DeliveryStreamDescription& WithSource(SourceDescription&& value) { SetSource(std::move(value)); return *this;}
500 
501 
502     /**
503      * <p>The destinations.</p>
504      */
GetDestinations()505     inline const Aws::Vector<DestinationDescription>& GetDestinations() const{ return m_destinations; }
506 
507     /**
508      * <p>The destinations.</p>
509      */
DestinationsHasBeenSet()510     inline bool DestinationsHasBeenSet() const { return m_destinationsHasBeenSet; }
511 
512     /**
513      * <p>The destinations.</p>
514      */
SetDestinations(const Aws::Vector<DestinationDescription> & value)515     inline void SetDestinations(const Aws::Vector<DestinationDescription>& value) { m_destinationsHasBeenSet = true; m_destinations = value; }
516 
517     /**
518      * <p>The destinations.</p>
519      */
SetDestinations(Aws::Vector<DestinationDescription> && value)520     inline void SetDestinations(Aws::Vector<DestinationDescription>&& value) { m_destinationsHasBeenSet = true; m_destinations = std::move(value); }
521 
522     /**
523      * <p>The destinations.</p>
524      */
WithDestinations(const Aws::Vector<DestinationDescription> & value)525     inline DeliveryStreamDescription& WithDestinations(const Aws::Vector<DestinationDescription>& value) { SetDestinations(value); return *this;}
526 
527     /**
528      * <p>The destinations.</p>
529      */
WithDestinations(Aws::Vector<DestinationDescription> && value)530     inline DeliveryStreamDescription& WithDestinations(Aws::Vector<DestinationDescription>&& value) { SetDestinations(std::move(value)); return *this;}
531 
532     /**
533      * <p>The destinations.</p>
534      */
AddDestinations(const DestinationDescription & value)535     inline DeliveryStreamDescription& AddDestinations(const DestinationDescription& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(value); return *this; }
536 
537     /**
538      * <p>The destinations.</p>
539      */
AddDestinations(DestinationDescription && value)540     inline DeliveryStreamDescription& AddDestinations(DestinationDescription&& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(std::move(value)); return *this; }
541 
542 
543     /**
544      * <p>Indicates whether there are more destinations available to list.</p>
545      */
GetHasMoreDestinations()546     inline bool GetHasMoreDestinations() const{ return m_hasMoreDestinations; }
547 
548     /**
549      * <p>Indicates whether there are more destinations available to list.</p>
550      */
HasMoreDestinationsHasBeenSet()551     inline bool HasMoreDestinationsHasBeenSet() const { return m_hasMoreDestinationsHasBeenSet; }
552 
553     /**
554      * <p>Indicates whether there are more destinations available to list.</p>
555      */
SetHasMoreDestinations(bool value)556     inline void SetHasMoreDestinations(bool value) { m_hasMoreDestinationsHasBeenSet = true; m_hasMoreDestinations = value; }
557 
558     /**
559      * <p>Indicates whether there are more destinations available to list.</p>
560      */
WithHasMoreDestinations(bool value)561     inline DeliveryStreamDescription& WithHasMoreDestinations(bool value) { SetHasMoreDestinations(value); return *this;}
562 
563   private:
564 
565     Aws::String m_deliveryStreamName;
566     bool m_deliveryStreamNameHasBeenSet;
567 
568     Aws::String m_deliveryStreamARN;
569     bool m_deliveryStreamARNHasBeenSet;
570 
571     DeliveryStreamStatus m_deliveryStreamStatus;
572     bool m_deliveryStreamStatusHasBeenSet;
573 
574     FailureDescription m_failureDescription;
575     bool m_failureDescriptionHasBeenSet;
576 
577     DeliveryStreamEncryptionConfiguration m_deliveryStreamEncryptionConfiguration;
578     bool m_deliveryStreamEncryptionConfigurationHasBeenSet;
579 
580     DeliveryStreamType m_deliveryStreamType;
581     bool m_deliveryStreamTypeHasBeenSet;
582 
583     Aws::String m_versionId;
584     bool m_versionIdHasBeenSet;
585 
586     Aws::Utils::DateTime m_createTimestamp;
587     bool m_createTimestampHasBeenSet;
588 
589     Aws::Utils::DateTime m_lastUpdateTimestamp;
590     bool m_lastUpdateTimestampHasBeenSet;
591 
592     SourceDescription m_source;
593     bool m_sourceHasBeenSet;
594 
595     Aws::Vector<DestinationDescription> m_destinations;
596     bool m_destinationsHasBeenSet;
597 
598     bool m_hasMoreDestinations;
599     bool m_hasMoreDestinationsHasBeenSet;
600   };
601 
602 } // namespace Model
603 } // namespace Firehose
604 } // namespace Aws
605