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/forecast/ForecastService_EXPORTS.h>
8 #include <aws/core/utils/DateTime.h>
9 #include <aws/forecast/model/EvaluationType.h>
10 #include <aws/forecast/model/Metrics.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace ForecastService
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>The metrics for a time range within the evaluation portion of a dataset. This
30    * object is part of the <a>EvaluationResult</a> object.</p> <p>The
31    * <code>TestWindowStart</code> and <code>TestWindowEnd</code> parameters are
32    * determined by the <code>BackTestWindowOffset</code> parameter of the
33    * <a>EvaluationParameters</a> object.</p><p><h3>See Also:</h3>   <a
34    * href="http://docs.aws.amazon.com/goto/WebAPI/forecast-2018-06-26/WindowSummary">AWS
35    * API Reference</a></p>
36    */
37   class AWS_FORECASTSERVICE_API WindowSummary
38   {
39   public:
40     WindowSummary();
41     WindowSummary(Aws::Utils::Json::JsonView jsonValue);
42     WindowSummary& operator=(Aws::Utils::Json::JsonView jsonValue);
43     Aws::Utils::Json::JsonValue Jsonize() const;
44 
45 
46     /**
47      * <p>The timestamp that defines the start of the window.</p>
48      */
GetTestWindowStart()49     inline const Aws::Utils::DateTime& GetTestWindowStart() const{ return m_testWindowStart; }
50 
51     /**
52      * <p>The timestamp that defines the start of the window.</p>
53      */
TestWindowStartHasBeenSet()54     inline bool TestWindowStartHasBeenSet() const { return m_testWindowStartHasBeenSet; }
55 
56     /**
57      * <p>The timestamp that defines the start of the window.</p>
58      */
SetTestWindowStart(const Aws::Utils::DateTime & value)59     inline void SetTestWindowStart(const Aws::Utils::DateTime& value) { m_testWindowStartHasBeenSet = true; m_testWindowStart = value; }
60 
61     /**
62      * <p>The timestamp that defines the start of the window.</p>
63      */
SetTestWindowStart(Aws::Utils::DateTime && value)64     inline void SetTestWindowStart(Aws::Utils::DateTime&& value) { m_testWindowStartHasBeenSet = true; m_testWindowStart = std::move(value); }
65 
66     /**
67      * <p>The timestamp that defines the start of the window.</p>
68      */
WithTestWindowStart(const Aws::Utils::DateTime & value)69     inline WindowSummary& WithTestWindowStart(const Aws::Utils::DateTime& value) { SetTestWindowStart(value); return *this;}
70 
71     /**
72      * <p>The timestamp that defines the start of the window.</p>
73      */
WithTestWindowStart(Aws::Utils::DateTime && value)74     inline WindowSummary& WithTestWindowStart(Aws::Utils::DateTime&& value) { SetTestWindowStart(std::move(value)); return *this;}
75 
76 
77     /**
78      * <p>The timestamp that defines the end of the window.</p>
79      */
GetTestWindowEnd()80     inline const Aws::Utils::DateTime& GetTestWindowEnd() const{ return m_testWindowEnd; }
81 
82     /**
83      * <p>The timestamp that defines the end of the window.</p>
84      */
TestWindowEndHasBeenSet()85     inline bool TestWindowEndHasBeenSet() const { return m_testWindowEndHasBeenSet; }
86 
87     /**
88      * <p>The timestamp that defines the end of the window.</p>
89      */
SetTestWindowEnd(const Aws::Utils::DateTime & value)90     inline void SetTestWindowEnd(const Aws::Utils::DateTime& value) { m_testWindowEndHasBeenSet = true; m_testWindowEnd = value; }
91 
92     /**
93      * <p>The timestamp that defines the end of the window.</p>
94      */
SetTestWindowEnd(Aws::Utils::DateTime && value)95     inline void SetTestWindowEnd(Aws::Utils::DateTime&& value) { m_testWindowEndHasBeenSet = true; m_testWindowEnd = std::move(value); }
96 
97     /**
98      * <p>The timestamp that defines the end of the window.</p>
99      */
WithTestWindowEnd(const Aws::Utils::DateTime & value)100     inline WindowSummary& WithTestWindowEnd(const Aws::Utils::DateTime& value) { SetTestWindowEnd(value); return *this;}
101 
102     /**
103      * <p>The timestamp that defines the end of the window.</p>
104      */
WithTestWindowEnd(Aws::Utils::DateTime && value)105     inline WindowSummary& WithTestWindowEnd(Aws::Utils::DateTime&& value) { SetTestWindowEnd(std::move(value)); return *this;}
106 
107 
108     /**
109      * <p>The number of data points within the window.</p>
110      */
GetItemCount()111     inline int GetItemCount() const{ return m_itemCount; }
112 
113     /**
114      * <p>The number of data points within the window.</p>
115      */
ItemCountHasBeenSet()116     inline bool ItemCountHasBeenSet() const { return m_itemCountHasBeenSet; }
117 
118     /**
119      * <p>The number of data points within the window.</p>
120      */
SetItemCount(int value)121     inline void SetItemCount(int value) { m_itemCountHasBeenSet = true; m_itemCount = value; }
122 
123     /**
124      * <p>The number of data points within the window.</p>
125      */
WithItemCount(int value)126     inline WindowSummary& WithItemCount(int value) { SetItemCount(value); return *this;}
127 
128 
129     /**
130      * <p>The type of evaluation.</p> <ul> <li> <p> <code>SUMMARY</code> - The average
131      * metrics across all windows.</p> </li> <li> <p> <code>COMPUTED</code> - The
132      * metrics for the specified window.</p> </li> </ul>
133      */
GetEvaluationType()134     inline const EvaluationType& GetEvaluationType() const{ return m_evaluationType; }
135 
136     /**
137      * <p>The type of evaluation.</p> <ul> <li> <p> <code>SUMMARY</code> - The average
138      * metrics across all windows.</p> </li> <li> <p> <code>COMPUTED</code> - The
139      * metrics for the specified window.</p> </li> </ul>
140      */
EvaluationTypeHasBeenSet()141     inline bool EvaluationTypeHasBeenSet() const { return m_evaluationTypeHasBeenSet; }
142 
143     /**
144      * <p>The type of evaluation.</p> <ul> <li> <p> <code>SUMMARY</code> - The average
145      * metrics across all windows.</p> </li> <li> <p> <code>COMPUTED</code> - The
146      * metrics for the specified window.</p> </li> </ul>
147      */
SetEvaluationType(const EvaluationType & value)148     inline void SetEvaluationType(const EvaluationType& value) { m_evaluationTypeHasBeenSet = true; m_evaluationType = value; }
149 
150     /**
151      * <p>The type of evaluation.</p> <ul> <li> <p> <code>SUMMARY</code> - The average
152      * metrics across all windows.</p> </li> <li> <p> <code>COMPUTED</code> - The
153      * metrics for the specified window.</p> </li> </ul>
154      */
SetEvaluationType(EvaluationType && value)155     inline void SetEvaluationType(EvaluationType&& value) { m_evaluationTypeHasBeenSet = true; m_evaluationType = std::move(value); }
156 
157     /**
158      * <p>The type of evaluation.</p> <ul> <li> <p> <code>SUMMARY</code> - The average
159      * metrics across all windows.</p> </li> <li> <p> <code>COMPUTED</code> - The
160      * metrics for the specified window.</p> </li> </ul>
161      */
WithEvaluationType(const EvaluationType & value)162     inline WindowSummary& WithEvaluationType(const EvaluationType& value) { SetEvaluationType(value); return *this;}
163 
164     /**
165      * <p>The type of evaluation.</p> <ul> <li> <p> <code>SUMMARY</code> - The average
166      * metrics across all windows.</p> </li> <li> <p> <code>COMPUTED</code> - The
167      * metrics for the specified window.</p> </li> </ul>
168      */
WithEvaluationType(EvaluationType && value)169     inline WindowSummary& WithEvaluationType(EvaluationType&& value) { SetEvaluationType(std::move(value)); return *this;}
170 
171 
172     /**
173      * <p>Provides metrics used to evaluate the performance of a predictor.</p>
174      */
GetMetrics()175     inline const Metrics& GetMetrics() const{ return m_metrics; }
176 
177     /**
178      * <p>Provides metrics used to evaluate the performance of a predictor.</p>
179      */
MetricsHasBeenSet()180     inline bool MetricsHasBeenSet() const { return m_metricsHasBeenSet; }
181 
182     /**
183      * <p>Provides metrics used to evaluate the performance of a predictor.</p>
184      */
SetMetrics(const Metrics & value)185     inline void SetMetrics(const Metrics& value) { m_metricsHasBeenSet = true; m_metrics = value; }
186 
187     /**
188      * <p>Provides metrics used to evaluate the performance of a predictor.</p>
189      */
SetMetrics(Metrics && value)190     inline void SetMetrics(Metrics&& value) { m_metricsHasBeenSet = true; m_metrics = std::move(value); }
191 
192     /**
193      * <p>Provides metrics used to evaluate the performance of a predictor.</p>
194      */
WithMetrics(const Metrics & value)195     inline WindowSummary& WithMetrics(const Metrics& value) { SetMetrics(value); return *this;}
196 
197     /**
198      * <p>Provides metrics used to evaluate the performance of a predictor.</p>
199      */
WithMetrics(Metrics && value)200     inline WindowSummary& WithMetrics(Metrics&& value) { SetMetrics(std::move(value)); return *this;}
201 
202   private:
203 
204     Aws::Utils::DateTime m_testWindowStart;
205     bool m_testWindowStartHasBeenSet;
206 
207     Aws::Utils::DateTime m_testWindowEnd;
208     bool m_testWindowEndHasBeenSet;
209 
210     int m_itemCount;
211     bool m_itemCountHasBeenSet;
212 
213     EvaluationType m_evaluationType;
214     bool m_evaluationTypeHasBeenSet;
215 
216     Metrics m_metrics;
217     bool m_metricsHasBeenSet;
218   };
219 
220 } // namespace Model
221 } // namespace ForecastService
222 } // namespace Aws
223