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/connect/Connect_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/connect/model/EncryptionConfig.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace Connect
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Configuration information of a Kinesis video stream.</p><p><h3>See Also:</h3>
29    * <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/KinesisVideoStreamConfig">AWS
31    * API Reference</a></p>
32    */
33   class AWS_CONNECT_API KinesisVideoStreamConfig
34   {
35   public:
36     KinesisVideoStreamConfig();
37     KinesisVideoStreamConfig(Aws::Utils::Json::JsonView jsonValue);
38     KinesisVideoStreamConfig& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The prefix of the video stream.</p>
44      */
GetPrefix()45     inline const Aws::String& GetPrefix() const{ return m_prefix; }
46 
47     /**
48      * <p>The prefix of the video stream.</p>
49      */
PrefixHasBeenSet()50     inline bool PrefixHasBeenSet() const { return m_prefixHasBeenSet; }
51 
52     /**
53      * <p>The prefix of the video stream.</p>
54      */
SetPrefix(const Aws::String & value)55     inline void SetPrefix(const Aws::String& value) { m_prefixHasBeenSet = true; m_prefix = value; }
56 
57     /**
58      * <p>The prefix of the video stream.</p>
59      */
SetPrefix(Aws::String && value)60     inline void SetPrefix(Aws::String&& value) { m_prefixHasBeenSet = true; m_prefix = std::move(value); }
61 
62     /**
63      * <p>The prefix of the video stream.</p>
64      */
SetPrefix(const char * value)65     inline void SetPrefix(const char* value) { m_prefixHasBeenSet = true; m_prefix.assign(value); }
66 
67     /**
68      * <p>The prefix of the video stream.</p>
69      */
WithPrefix(const Aws::String & value)70     inline KinesisVideoStreamConfig& WithPrefix(const Aws::String& value) { SetPrefix(value); return *this;}
71 
72     /**
73      * <p>The prefix of the video stream.</p>
74      */
WithPrefix(Aws::String && value)75     inline KinesisVideoStreamConfig& WithPrefix(Aws::String&& value) { SetPrefix(std::move(value)); return *this;}
76 
77     /**
78      * <p>The prefix of the video stream.</p>
79      */
WithPrefix(const char * value)80     inline KinesisVideoStreamConfig& WithPrefix(const char* value) { SetPrefix(value); return *this;}
81 
82 
83     /**
84      * <p>The number of hours data is retained in the stream. Kinesis Video Streams
85      * retains the data in a data store that is associated with the stream.</p> <p>The
86      * default value is 0, indicating that the stream does not persist data.</p>
87      */
GetRetentionPeriodHours()88     inline int GetRetentionPeriodHours() const{ return m_retentionPeriodHours; }
89 
90     /**
91      * <p>The number of hours data is retained in the stream. Kinesis Video Streams
92      * retains the data in a data store that is associated with the stream.</p> <p>The
93      * default value is 0, indicating that the stream does not persist data.</p>
94      */
RetentionPeriodHoursHasBeenSet()95     inline bool RetentionPeriodHoursHasBeenSet() const { return m_retentionPeriodHoursHasBeenSet; }
96 
97     /**
98      * <p>The number of hours data is retained in the stream. Kinesis Video Streams
99      * retains the data in a data store that is associated with the stream.</p> <p>The
100      * default value is 0, indicating that the stream does not persist data.</p>
101      */
SetRetentionPeriodHours(int value)102     inline void SetRetentionPeriodHours(int value) { m_retentionPeriodHoursHasBeenSet = true; m_retentionPeriodHours = value; }
103 
104     /**
105      * <p>The number of hours data is retained in the stream. Kinesis Video Streams
106      * retains the data in a data store that is associated with the stream.</p> <p>The
107      * default value is 0, indicating that the stream does not persist data.</p>
108      */
WithRetentionPeriodHours(int value)109     inline KinesisVideoStreamConfig& WithRetentionPeriodHours(int value) { SetRetentionPeriodHours(value); return *this;}
110 
111 
112     /**
113      * <p>The encryption configuration.</p>
114      */
GetEncryptionConfig()115     inline const EncryptionConfig& GetEncryptionConfig() const{ return m_encryptionConfig; }
116 
117     /**
118      * <p>The encryption configuration.</p>
119      */
EncryptionConfigHasBeenSet()120     inline bool EncryptionConfigHasBeenSet() const { return m_encryptionConfigHasBeenSet; }
121 
122     /**
123      * <p>The encryption configuration.</p>
124      */
SetEncryptionConfig(const EncryptionConfig & value)125     inline void SetEncryptionConfig(const EncryptionConfig& value) { m_encryptionConfigHasBeenSet = true; m_encryptionConfig = value; }
126 
127     /**
128      * <p>The encryption configuration.</p>
129      */
SetEncryptionConfig(EncryptionConfig && value)130     inline void SetEncryptionConfig(EncryptionConfig&& value) { m_encryptionConfigHasBeenSet = true; m_encryptionConfig = std::move(value); }
131 
132     /**
133      * <p>The encryption configuration.</p>
134      */
WithEncryptionConfig(const EncryptionConfig & value)135     inline KinesisVideoStreamConfig& WithEncryptionConfig(const EncryptionConfig& value) { SetEncryptionConfig(value); return *this;}
136 
137     /**
138      * <p>The encryption configuration.</p>
139      */
WithEncryptionConfig(EncryptionConfig && value)140     inline KinesisVideoStreamConfig& WithEncryptionConfig(EncryptionConfig&& value) { SetEncryptionConfig(std::move(value)); return *this;}
141 
142   private:
143 
144     Aws::String m_prefix;
145     bool m_prefixHasBeenSet;
146 
147     int m_retentionPeriodHours;
148     bool m_retentionPeriodHoursHasBeenSet;
149 
150     EncryptionConfig m_encryptionConfig;
151     bool m_encryptionConfigHasBeenSet;
152   };
153 
154 } // namespace Model
155 } // namespace Connect
156 } // namespace Aws
157