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/kinesis/Kinesis_EXPORTS.h>
8 #include <aws/kinesis/KinesisRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/kinesis/model/MetricsName.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Kinesis
17 {
18 namespace Model
19 {
20 
21   /**
22    * <p>Represents the input for <a>EnableEnhancedMonitoring</a>.</p><p><h3>See
23    * Also:</h3>   <a
24    * href="http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/EnableEnhancedMonitoringInput">AWS
25    * API Reference</a></p>
26    */
27   class AWS_KINESIS_API EnableEnhancedMonitoringRequest : public KinesisRequest
28   {
29   public:
30     EnableEnhancedMonitoringRequest();
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 "EnableEnhancedMonitoring"; }
37 
38     Aws::String SerializePayload() const override;
39 
40     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
41 
42 
43     /**
44      * <p>The name of the stream for which to enable enhanced monitoring.</p>
45      */
GetStreamName()46     inline const Aws::String& GetStreamName() const{ return m_streamName; }
47 
48     /**
49      * <p>The name of the stream for which to enable enhanced monitoring.</p>
50      */
StreamNameHasBeenSet()51     inline bool StreamNameHasBeenSet() const { return m_streamNameHasBeenSet; }
52 
53     /**
54      * <p>The name of the stream for which to enable enhanced monitoring.</p>
55      */
SetStreamName(const Aws::String & value)56     inline void SetStreamName(const Aws::String& value) { m_streamNameHasBeenSet = true; m_streamName = value; }
57 
58     /**
59      * <p>The name of the stream for which to enable enhanced monitoring.</p>
60      */
SetStreamName(Aws::String && value)61     inline void SetStreamName(Aws::String&& value) { m_streamNameHasBeenSet = true; m_streamName = std::move(value); }
62 
63     /**
64      * <p>The name of the stream for which to enable enhanced monitoring.</p>
65      */
SetStreamName(const char * value)66     inline void SetStreamName(const char* value) { m_streamNameHasBeenSet = true; m_streamName.assign(value); }
67 
68     /**
69      * <p>The name of the stream for which to enable enhanced monitoring.</p>
70      */
WithStreamName(const Aws::String & value)71     inline EnableEnhancedMonitoringRequest& WithStreamName(const Aws::String& value) { SetStreamName(value); return *this;}
72 
73     /**
74      * <p>The name of the stream for which to enable enhanced monitoring.</p>
75      */
WithStreamName(Aws::String && value)76     inline EnableEnhancedMonitoringRequest& WithStreamName(Aws::String&& value) { SetStreamName(std::move(value)); return *this;}
77 
78     /**
79      * <p>The name of the stream for which to enable enhanced monitoring.</p>
80      */
WithStreamName(const char * value)81     inline EnableEnhancedMonitoringRequest& WithStreamName(const char* value) { SetStreamName(value); return *this;}
82 
83 
84     /**
85      * <p>List of shard-level metrics to enable.</p> <p>The following are the valid
86      * shard-level metrics. The value "<code>ALL</code>" enables every metric.</p> <ul>
87      * <li> <p> <code>IncomingBytes</code> </p> </li> <li> <p>
88      * <code>IncomingRecords</code> </p> </li> <li> <p> <code>OutgoingBytes</code> </p>
89      * </li> <li> <p> <code>OutgoingRecords</code> </p> </li> <li> <p>
90      * <code>WriteProvisionedThroughputExceeded</code> </p> </li> <li> <p>
91      * <code>ReadProvisionedThroughputExceeded</code> </p> </li> <li> <p>
92      * <code>IteratorAgeMilliseconds</code> </p> </li> <li> <p> <code>ALL</code> </p>
93      * </li> </ul> <p>For more information, see <a
94      * href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html">Monitoring
95      * the Amazon Kinesis Data Streams Service with Amazon CloudWatch</a> in the
96      * <i>Amazon Kinesis Data Streams Developer Guide</i>.</p>
97      */
GetShardLevelMetrics()98     inline const Aws::Vector<MetricsName>& GetShardLevelMetrics() const{ return m_shardLevelMetrics; }
99 
100     /**
101      * <p>List of shard-level metrics to enable.</p> <p>The following are the valid
102      * shard-level metrics. The value "<code>ALL</code>" enables every metric.</p> <ul>
103      * <li> <p> <code>IncomingBytes</code> </p> </li> <li> <p>
104      * <code>IncomingRecords</code> </p> </li> <li> <p> <code>OutgoingBytes</code> </p>
105      * </li> <li> <p> <code>OutgoingRecords</code> </p> </li> <li> <p>
106      * <code>WriteProvisionedThroughputExceeded</code> </p> </li> <li> <p>
107      * <code>ReadProvisionedThroughputExceeded</code> </p> </li> <li> <p>
108      * <code>IteratorAgeMilliseconds</code> </p> </li> <li> <p> <code>ALL</code> </p>
109      * </li> </ul> <p>For more information, see <a
110      * href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html">Monitoring
111      * the Amazon Kinesis Data Streams Service with Amazon CloudWatch</a> in the
112      * <i>Amazon Kinesis Data Streams Developer Guide</i>.</p>
113      */
ShardLevelMetricsHasBeenSet()114     inline bool ShardLevelMetricsHasBeenSet() const { return m_shardLevelMetricsHasBeenSet; }
115 
116     /**
117      * <p>List of shard-level metrics to enable.</p> <p>The following are the valid
118      * shard-level metrics. The value "<code>ALL</code>" enables every metric.</p> <ul>
119      * <li> <p> <code>IncomingBytes</code> </p> </li> <li> <p>
120      * <code>IncomingRecords</code> </p> </li> <li> <p> <code>OutgoingBytes</code> </p>
121      * </li> <li> <p> <code>OutgoingRecords</code> </p> </li> <li> <p>
122      * <code>WriteProvisionedThroughputExceeded</code> </p> </li> <li> <p>
123      * <code>ReadProvisionedThroughputExceeded</code> </p> </li> <li> <p>
124      * <code>IteratorAgeMilliseconds</code> </p> </li> <li> <p> <code>ALL</code> </p>
125      * </li> </ul> <p>For more information, see <a
126      * href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html">Monitoring
127      * the Amazon Kinesis Data Streams Service with Amazon CloudWatch</a> in the
128      * <i>Amazon Kinesis Data Streams Developer Guide</i>.</p>
129      */
SetShardLevelMetrics(const Aws::Vector<MetricsName> & value)130     inline void SetShardLevelMetrics(const Aws::Vector<MetricsName>& value) { m_shardLevelMetricsHasBeenSet = true; m_shardLevelMetrics = value; }
131 
132     /**
133      * <p>List of shard-level metrics to enable.</p> <p>The following are the valid
134      * shard-level metrics. The value "<code>ALL</code>" enables every metric.</p> <ul>
135      * <li> <p> <code>IncomingBytes</code> </p> </li> <li> <p>
136      * <code>IncomingRecords</code> </p> </li> <li> <p> <code>OutgoingBytes</code> </p>
137      * </li> <li> <p> <code>OutgoingRecords</code> </p> </li> <li> <p>
138      * <code>WriteProvisionedThroughputExceeded</code> </p> </li> <li> <p>
139      * <code>ReadProvisionedThroughputExceeded</code> </p> </li> <li> <p>
140      * <code>IteratorAgeMilliseconds</code> </p> </li> <li> <p> <code>ALL</code> </p>
141      * </li> </ul> <p>For more information, see <a
142      * href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html">Monitoring
143      * the Amazon Kinesis Data Streams Service with Amazon CloudWatch</a> in the
144      * <i>Amazon Kinesis Data Streams Developer Guide</i>.</p>
145      */
SetShardLevelMetrics(Aws::Vector<MetricsName> && value)146     inline void SetShardLevelMetrics(Aws::Vector<MetricsName>&& value) { m_shardLevelMetricsHasBeenSet = true; m_shardLevelMetrics = std::move(value); }
147 
148     /**
149      * <p>List of shard-level metrics to enable.</p> <p>The following are the valid
150      * shard-level metrics. The value "<code>ALL</code>" enables every metric.</p> <ul>
151      * <li> <p> <code>IncomingBytes</code> </p> </li> <li> <p>
152      * <code>IncomingRecords</code> </p> </li> <li> <p> <code>OutgoingBytes</code> </p>
153      * </li> <li> <p> <code>OutgoingRecords</code> </p> </li> <li> <p>
154      * <code>WriteProvisionedThroughputExceeded</code> </p> </li> <li> <p>
155      * <code>ReadProvisionedThroughputExceeded</code> </p> </li> <li> <p>
156      * <code>IteratorAgeMilliseconds</code> </p> </li> <li> <p> <code>ALL</code> </p>
157      * </li> </ul> <p>For more information, see <a
158      * href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html">Monitoring
159      * the Amazon Kinesis Data Streams Service with Amazon CloudWatch</a> in the
160      * <i>Amazon Kinesis Data Streams Developer Guide</i>.</p>
161      */
WithShardLevelMetrics(const Aws::Vector<MetricsName> & value)162     inline EnableEnhancedMonitoringRequest& WithShardLevelMetrics(const Aws::Vector<MetricsName>& value) { SetShardLevelMetrics(value); return *this;}
163 
164     /**
165      * <p>List of shard-level metrics to enable.</p> <p>The following are the valid
166      * shard-level metrics. The value "<code>ALL</code>" enables every metric.</p> <ul>
167      * <li> <p> <code>IncomingBytes</code> </p> </li> <li> <p>
168      * <code>IncomingRecords</code> </p> </li> <li> <p> <code>OutgoingBytes</code> </p>
169      * </li> <li> <p> <code>OutgoingRecords</code> </p> </li> <li> <p>
170      * <code>WriteProvisionedThroughputExceeded</code> </p> </li> <li> <p>
171      * <code>ReadProvisionedThroughputExceeded</code> </p> </li> <li> <p>
172      * <code>IteratorAgeMilliseconds</code> </p> </li> <li> <p> <code>ALL</code> </p>
173      * </li> </ul> <p>For more information, see <a
174      * href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html">Monitoring
175      * the Amazon Kinesis Data Streams Service with Amazon CloudWatch</a> in the
176      * <i>Amazon Kinesis Data Streams Developer Guide</i>.</p>
177      */
WithShardLevelMetrics(Aws::Vector<MetricsName> && value)178     inline EnableEnhancedMonitoringRequest& WithShardLevelMetrics(Aws::Vector<MetricsName>&& value) { SetShardLevelMetrics(std::move(value)); return *this;}
179 
180     /**
181      * <p>List of shard-level metrics to enable.</p> <p>The following are the valid
182      * shard-level metrics. The value "<code>ALL</code>" enables every metric.</p> <ul>
183      * <li> <p> <code>IncomingBytes</code> </p> </li> <li> <p>
184      * <code>IncomingRecords</code> </p> </li> <li> <p> <code>OutgoingBytes</code> </p>
185      * </li> <li> <p> <code>OutgoingRecords</code> </p> </li> <li> <p>
186      * <code>WriteProvisionedThroughputExceeded</code> </p> </li> <li> <p>
187      * <code>ReadProvisionedThroughputExceeded</code> </p> </li> <li> <p>
188      * <code>IteratorAgeMilliseconds</code> </p> </li> <li> <p> <code>ALL</code> </p>
189      * </li> </ul> <p>For more information, see <a
190      * href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html">Monitoring
191      * the Amazon Kinesis Data Streams Service with Amazon CloudWatch</a> in the
192      * <i>Amazon Kinesis Data Streams Developer Guide</i>.</p>
193      */
AddShardLevelMetrics(const MetricsName & value)194     inline EnableEnhancedMonitoringRequest& AddShardLevelMetrics(const MetricsName& value) { m_shardLevelMetricsHasBeenSet = true; m_shardLevelMetrics.push_back(value); return *this; }
195 
196     /**
197      * <p>List of shard-level metrics to enable.</p> <p>The following are the valid
198      * shard-level metrics. The value "<code>ALL</code>" enables every metric.</p> <ul>
199      * <li> <p> <code>IncomingBytes</code> </p> </li> <li> <p>
200      * <code>IncomingRecords</code> </p> </li> <li> <p> <code>OutgoingBytes</code> </p>
201      * </li> <li> <p> <code>OutgoingRecords</code> </p> </li> <li> <p>
202      * <code>WriteProvisionedThroughputExceeded</code> </p> </li> <li> <p>
203      * <code>ReadProvisionedThroughputExceeded</code> </p> </li> <li> <p>
204      * <code>IteratorAgeMilliseconds</code> </p> </li> <li> <p> <code>ALL</code> </p>
205      * </li> </ul> <p>For more information, see <a
206      * href="https://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html">Monitoring
207      * the Amazon Kinesis Data Streams Service with Amazon CloudWatch</a> in the
208      * <i>Amazon Kinesis Data Streams Developer Guide</i>.</p>
209      */
AddShardLevelMetrics(MetricsName && value)210     inline EnableEnhancedMonitoringRequest& AddShardLevelMetrics(MetricsName&& value) { m_shardLevelMetricsHasBeenSet = true; m_shardLevelMetrics.push_back(std::move(value)); return *this; }
211 
212   private:
213 
214     Aws::String m_streamName;
215     bool m_streamNameHasBeenSet;
216 
217     Aws::Vector<MetricsName> m_shardLevelMetrics;
218     bool m_shardLevelMetricsHasBeenSet;
219   };
220 
221 } // namespace Model
222 } // namespace Kinesis
223 } // namespace Aws
224