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/pinpoint/Pinpoint_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/pinpoint/model/ResultRowValue.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 Pinpoint
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Provides the results of a query that retrieved the data for a standard metric
29    * that applies to an application, campaign, or journey.</p><p><h3>See Also:</h3>
30    * <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/ResultRow">AWS
32    * API Reference</a></p>
33    */
34   class AWS_PINPOINT_API ResultRow
35   {
36   public:
37     ResultRow();
38     ResultRow(Aws::Utils::Json::JsonView jsonValue);
39     ResultRow& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>An array of objects that defines the field and field values that were used to
45      * group data in a result set that contains multiple results. This value is null if
46      * the data in a result set isn’t grouped.</p>
47      */
GetGroupedBys()48     inline const Aws::Vector<ResultRowValue>& GetGroupedBys() const{ return m_groupedBys; }
49 
50     /**
51      * <p>An array of objects that defines the field and field values that were used to
52      * group data in a result set that contains multiple results. This value is null if
53      * the data in a result set isn’t grouped.</p>
54      */
GroupedBysHasBeenSet()55     inline bool GroupedBysHasBeenSet() const { return m_groupedBysHasBeenSet; }
56 
57     /**
58      * <p>An array of objects that defines the field and field values that were used to
59      * group data in a result set that contains multiple results. This value is null if
60      * the data in a result set isn’t grouped.</p>
61      */
SetGroupedBys(const Aws::Vector<ResultRowValue> & value)62     inline void SetGroupedBys(const Aws::Vector<ResultRowValue>& value) { m_groupedBysHasBeenSet = true; m_groupedBys = value; }
63 
64     /**
65      * <p>An array of objects that defines the field and field values that were used to
66      * group data in a result set that contains multiple results. This value is null if
67      * the data in a result set isn’t grouped.</p>
68      */
SetGroupedBys(Aws::Vector<ResultRowValue> && value)69     inline void SetGroupedBys(Aws::Vector<ResultRowValue>&& value) { m_groupedBysHasBeenSet = true; m_groupedBys = std::move(value); }
70 
71     /**
72      * <p>An array of objects that defines the field and field values that were used to
73      * group data in a result set that contains multiple results. This value is null if
74      * the data in a result set isn’t grouped.</p>
75      */
WithGroupedBys(const Aws::Vector<ResultRowValue> & value)76     inline ResultRow& WithGroupedBys(const Aws::Vector<ResultRowValue>& value) { SetGroupedBys(value); return *this;}
77 
78     /**
79      * <p>An array of objects that defines the field and field values that were used to
80      * group data in a result set that contains multiple results. This value is null if
81      * the data in a result set isn’t grouped.</p>
82      */
WithGroupedBys(Aws::Vector<ResultRowValue> && value)83     inline ResultRow& WithGroupedBys(Aws::Vector<ResultRowValue>&& value) { SetGroupedBys(std::move(value)); return *this;}
84 
85     /**
86      * <p>An array of objects that defines the field and field values that were used to
87      * group data in a result set that contains multiple results. This value is null if
88      * the data in a result set isn’t grouped.</p>
89      */
AddGroupedBys(const ResultRowValue & value)90     inline ResultRow& AddGroupedBys(const ResultRowValue& value) { m_groupedBysHasBeenSet = true; m_groupedBys.push_back(value); return *this; }
91 
92     /**
93      * <p>An array of objects that defines the field and field values that were used to
94      * group data in a result set that contains multiple results. This value is null if
95      * the data in a result set isn’t grouped.</p>
96      */
AddGroupedBys(ResultRowValue && value)97     inline ResultRow& AddGroupedBys(ResultRowValue&& value) { m_groupedBysHasBeenSet = true; m_groupedBys.push_back(std::move(value)); return *this; }
98 
99 
100     /**
101      * <p>An array of objects that provides pre-aggregated values for a standard metric
102      * that applies to an application, campaign, or journey.</p>
103      */
GetValues()104     inline const Aws::Vector<ResultRowValue>& GetValues() const{ return m_values; }
105 
106     /**
107      * <p>An array of objects that provides pre-aggregated values for a standard metric
108      * that applies to an application, campaign, or journey.</p>
109      */
ValuesHasBeenSet()110     inline bool ValuesHasBeenSet() const { return m_valuesHasBeenSet; }
111 
112     /**
113      * <p>An array of objects that provides pre-aggregated values for a standard metric
114      * that applies to an application, campaign, or journey.</p>
115      */
SetValues(const Aws::Vector<ResultRowValue> & value)116     inline void SetValues(const Aws::Vector<ResultRowValue>& value) { m_valuesHasBeenSet = true; m_values = value; }
117 
118     /**
119      * <p>An array of objects that provides pre-aggregated values for a standard metric
120      * that applies to an application, campaign, or journey.</p>
121      */
SetValues(Aws::Vector<ResultRowValue> && value)122     inline void SetValues(Aws::Vector<ResultRowValue>&& value) { m_valuesHasBeenSet = true; m_values = std::move(value); }
123 
124     /**
125      * <p>An array of objects that provides pre-aggregated values for a standard metric
126      * that applies to an application, campaign, or journey.</p>
127      */
WithValues(const Aws::Vector<ResultRowValue> & value)128     inline ResultRow& WithValues(const Aws::Vector<ResultRowValue>& value) { SetValues(value); return *this;}
129 
130     /**
131      * <p>An array of objects that provides pre-aggregated values for a standard metric
132      * that applies to an application, campaign, or journey.</p>
133      */
WithValues(Aws::Vector<ResultRowValue> && value)134     inline ResultRow& WithValues(Aws::Vector<ResultRowValue>&& value) { SetValues(std::move(value)); return *this;}
135 
136     /**
137      * <p>An array of objects that provides pre-aggregated values for a standard metric
138      * that applies to an application, campaign, or journey.</p>
139      */
AddValues(const ResultRowValue & value)140     inline ResultRow& AddValues(const ResultRowValue& value) { m_valuesHasBeenSet = true; m_values.push_back(value); return *this; }
141 
142     /**
143      * <p>An array of objects that provides pre-aggregated values for a standard metric
144      * that applies to an application, campaign, or journey.</p>
145      */
AddValues(ResultRowValue && value)146     inline ResultRow& AddValues(ResultRowValue&& value) { m_valuesHasBeenSet = true; m_values.push_back(std::move(value)); return *this; }
147 
148   private:
149 
150     Aws::Vector<ResultRowValue> m_groupedBys;
151     bool m_groupedBysHasBeenSet;
152 
153     Aws::Vector<ResultRowValue> m_values;
154     bool m_valuesHasBeenSet;
155   };
156 
157 } // namespace Model
158 } // namespace Pinpoint
159 } // namespace Aws
160