AWS SDK for C++

AWS SDK for C++ Version 1.11.440

Loading...
Searching...
No Matches
TopicColumn.h
1
6#pragma once
7#include <aws/quicksight/QuickSight_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSString.h>
9#include <aws/core/utils/memory/stl/AWSVector.h>
10#include <aws/quicksight/model/ColumnDataRole.h>
11#include <aws/quicksight/model/DefaultAggregation.h>
12#include <aws/quicksight/model/ComparativeOrder.h>
13#include <aws/quicksight/model/SemanticType.h>
14#include <aws/quicksight/model/TopicTimeGranularity.h>
15#include <aws/quicksight/model/DefaultFormatting.h>
16#include <aws/quicksight/model/AuthorSpecifiedAggregation.h>
17#include <aws/quicksight/model/CellValueSynonym.h>
18#include <utility>
19
20namespace Aws
21{
22namespace Utils
23{
24namespace Json
25{
26 class JsonValue;
27 class JsonView;
28} // namespace Json
29} // namespace Utils
30namespace QuickSight
31{
32namespace Model
33{
34
41 {
42 public:
43 AWS_QUICKSIGHT_API TopicColumn();
44 AWS_QUICKSIGHT_API TopicColumn(Aws::Utils::Json::JsonView jsonValue);
45 AWS_QUICKSIGHT_API TopicColumn& operator=(Aws::Utils::Json::JsonView jsonValue);
46 AWS_QUICKSIGHT_API Aws::Utils::Json::JsonValue Jsonize() const;
47
48
50
53 inline const Aws::String& GetColumnName() const{ return m_columnName; }
54 inline bool ColumnNameHasBeenSet() const { return m_columnNameHasBeenSet; }
55 inline void SetColumnName(const Aws::String& value) { m_columnNameHasBeenSet = true; m_columnName = value; }
56 inline void SetColumnName(Aws::String&& value) { m_columnNameHasBeenSet = true; m_columnName = std::move(value); }
57 inline void SetColumnName(const char* value) { m_columnNameHasBeenSet = true; m_columnName.assign(value); }
58 inline TopicColumn& WithColumnName(const Aws::String& value) { SetColumnName(value); return *this;}
59 inline TopicColumn& WithColumnName(Aws::String&& value) { SetColumnName(std::move(value)); return *this;}
60 inline TopicColumn& WithColumnName(const char* value) { SetColumnName(value); return *this;}
62
64
67 inline const Aws::String& GetColumnFriendlyName() const{ return m_columnFriendlyName; }
68 inline bool ColumnFriendlyNameHasBeenSet() const { return m_columnFriendlyNameHasBeenSet; }
69 inline void SetColumnFriendlyName(const Aws::String& value) { m_columnFriendlyNameHasBeenSet = true; m_columnFriendlyName = value; }
70 inline void SetColumnFriendlyName(Aws::String&& value) { m_columnFriendlyNameHasBeenSet = true; m_columnFriendlyName = std::move(value); }
71 inline void SetColumnFriendlyName(const char* value) { m_columnFriendlyNameHasBeenSet = true; m_columnFriendlyName.assign(value); }
72 inline TopicColumn& WithColumnFriendlyName(const Aws::String& value) { SetColumnFriendlyName(value); return *this;}
73 inline TopicColumn& WithColumnFriendlyName(Aws::String&& value) { SetColumnFriendlyName(std::move(value)); return *this;}
74 inline TopicColumn& WithColumnFriendlyName(const char* value) { SetColumnFriendlyName(value); return *this;}
76
78
81 inline const Aws::String& GetColumnDescription() const{ return m_columnDescription; }
82 inline bool ColumnDescriptionHasBeenSet() const { return m_columnDescriptionHasBeenSet; }
83 inline void SetColumnDescription(const Aws::String& value) { m_columnDescriptionHasBeenSet = true; m_columnDescription = value; }
84 inline void SetColumnDescription(Aws::String&& value) { m_columnDescriptionHasBeenSet = true; m_columnDescription = std::move(value); }
85 inline void SetColumnDescription(const char* value) { m_columnDescriptionHasBeenSet = true; m_columnDescription.assign(value); }
86 inline TopicColumn& WithColumnDescription(const Aws::String& value) { SetColumnDescription(value); return *this;}
87 inline TopicColumn& WithColumnDescription(Aws::String&& value) { SetColumnDescription(std::move(value)); return *this;}
88 inline TopicColumn& WithColumnDescription(const char* value) { SetColumnDescription(value); return *this;}
90
92
95 inline const Aws::Vector<Aws::String>& GetColumnSynonyms() const{ return m_columnSynonyms; }
96 inline bool ColumnSynonymsHasBeenSet() const { return m_columnSynonymsHasBeenSet; }
97 inline void SetColumnSynonyms(const Aws::Vector<Aws::String>& value) { m_columnSynonymsHasBeenSet = true; m_columnSynonyms = value; }
98 inline void SetColumnSynonyms(Aws::Vector<Aws::String>&& value) { m_columnSynonymsHasBeenSet = true; m_columnSynonyms = std::move(value); }
99 inline TopicColumn& WithColumnSynonyms(const Aws::Vector<Aws::String>& value) { SetColumnSynonyms(value); return *this;}
100 inline TopicColumn& WithColumnSynonyms(Aws::Vector<Aws::String>&& value) { SetColumnSynonyms(std::move(value)); return *this;}
101 inline TopicColumn& AddColumnSynonyms(const Aws::String& value) { m_columnSynonymsHasBeenSet = true; m_columnSynonyms.push_back(value); return *this; }
102 inline TopicColumn& AddColumnSynonyms(Aws::String&& value) { m_columnSynonymsHasBeenSet = true; m_columnSynonyms.push_back(std::move(value)); return *this; }
103 inline TopicColumn& AddColumnSynonyms(const char* value) { m_columnSynonymsHasBeenSet = true; m_columnSynonyms.push_back(value); return *this; }
105
107
111 inline const ColumnDataRole& GetColumnDataRole() const{ return m_columnDataRole; }
112 inline bool ColumnDataRoleHasBeenSet() const { return m_columnDataRoleHasBeenSet; }
113 inline void SetColumnDataRole(const ColumnDataRole& value) { m_columnDataRoleHasBeenSet = true; m_columnDataRole = value; }
114 inline void SetColumnDataRole(ColumnDataRole&& value) { m_columnDataRoleHasBeenSet = true; m_columnDataRole = std::move(value); }
115 inline TopicColumn& WithColumnDataRole(const ColumnDataRole& value) { SetColumnDataRole(value); return *this;}
116 inline TopicColumn& WithColumnDataRole(ColumnDataRole&& value) { SetColumnDataRole(std::move(value)); return *this;}
118
120
124 inline const DefaultAggregation& GetAggregation() const{ return m_aggregation; }
125 inline bool AggregationHasBeenSet() const { return m_aggregationHasBeenSet; }
126 inline void SetAggregation(const DefaultAggregation& value) { m_aggregationHasBeenSet = true; m_aggregation = value; }
127 inline void SetAggregation(DefaultAggregation&& value) { m_aggregationHasBeenSet = true; m_aggregation = std::move(value); }
128 inline TopicColumn& WithAggregation(const DefaultAggregation& value) { SetAggregation(value); return *this;}
129 inline TopicColumn& WithAggregation(DefaultAggregation&& value) { SetAggregation(std::move(value)); return *this;}
131
133
137 inline bool GetIsIncludedInTopic() const{ return m_isIncludedInTopic; }
138 inline bool IsIncludedInTopicHasBeenSet() const { return m_isIncludedInTopicHasBeenSet; }
139 inline void SetIsIncludedInTopic(bool value) { m_isIncludedInTopicHasBeenSet = true; m_isIncludedInTopic = value; }
140 inline TopicColumn& WithIsIncludedInTopic(bool value) { SetIsIncludedInTopic(value); return *this;}
142
144
148 inline bool GetDisableIndexing() const{ return m_disableIndexing; }
149 inline bool DisableIndexingHasBeenSet() const { return m_disableIndexingHasBeenSet; }
150 inline void SetDisableIndexing(bool value) { m_disableIndexingHasBeenSet = true; m_disableIndexing = value; }
151 inline TopicColumn& WithDisableIndexing(bool value) { SetDisableIndexing(value); return *this;}
153
155
159 inline const ComparativeOrder& GetComparativeOrder() const{ return m_comparativeOrder; }
160 inline bool ComparativeOrderHasBeenSet() const { return m_comparativeOrderHasBeenSet; }
161 inline void SetComparativeOrder(const ComparativeOrder& value) { m_comparativeOrderHasBeenSet = true; m_comparativeOrder = value; }
162 inline void SetComparativeOrder(ComparativeOrder&& value) { m_comparativeOrderHasBeenSet = true; m_comparativeOrder = std::move(value); }
163 inline TopicColumn& WithComparativeOrder(const ComparativeOrder& value) { SetComparativeOrder(value); return *this;}
164 inline TopicColumn& WithComparativeOrder(ComparativeOrder&& value) { SetComparativeOrder(std::move(value)); return *this;}
166
168
171 inline const SemanticType& GetSemanticType() const{ return m_semanticType; }
172 inline bool SemanticTypeHasBeenSet() const { return m_semanticTypeHasBeenSet; }
173 inline void SetSemanticType(const SemanticType& value) { m_semanticTypeHasBeenSet = true; m_semanticType = value; }
174 inline void SetSemanticType(SemanticType&& value) { m_semanticTypeHasBeenSet = true; m_semanticType = std::move(value); }
175 inline TopicColumn& WithSemanticType(const SemanticType& value) { SetSemanticType(value); return *this;}
176 inline TopicColumn& WithSemanticType(SemanticType&& value) { SetSemanticType(std::move(value)); return *this;}
178
180
184 inline const TopicTimeGranularity& GetTimeGranularity() const{ return m_timeGranularity; }
185 inline bool TimeGranularityHasBeenSet() const { return m_timeGranularityHasBeenSet; }
186 inline void SetTimeGranularity(const TopicTimeGranularity& value) { m_timeGranularityHasBeenSet = true; m_timeGranularity = value; }
187 inline void SetTimeGranularity(TopicTimeGranularity&& value) { m_timeGranularityHasBeenSet = true; m_timeGranularity = std::move(value); }
188 inline TopicColumn& WithTimeGranularity(const TopicTimeGranularity& value) { SetTimeGranularity(value); return *this;}
189 inline TopicColumn& WithTimeGranularity(TopicTimeGranularity&& value) { SetTimeGranularity(std::move(value)); return *this;}
191
193
200 inline const Aws::Vector<AuthorSpecifiedAggregation>& GetAllowedAggregations() const{ return m_allowedAggregations; }
201 inline bool AllowedAggregationsHasBeenSet() const { return m_allowedAggregationsHasBeenSet; }
202 inline void SetAllowedAggregations(const Aws::Vector<AuthorSpecifiedAggregation>& value) { m_allowedAggregationsHasBeenSet = true; m_allowedAggregations = value; }
203 inline void SetAllowedAggregations(Aws::Vector<AuthorSpecifiedAggregation>&& value) { m_allowedAggregationsHasBeenSet = true; m_allowedAggregations = std::move(value); }
206 inline TopicColumn& AddAllowedAggregations(const AuthorSpecifiedAggregation& value) { m_allowedAggregationsHasBeenSet = true; m_allowedAggregations.push_back(value); return *this; }
207 inline TopicColumn& AddAllowedAggregations(AuthorSpecifiedAggregation&& value) { m_allowedAggregationsHasBeenSet = true; m_allowedAggregations.push_back(std::move(value)); return *this; }
209
211
218 inline const Aws::Vector<AuthorSpecifiedAggregation>& GetNotAllowedAggregations() const{ return m_notAllowedAggregations; }
219 inline bool NotAllowedAggregationsHasBeenSet() const { return m_notAllowedAggregationsHasBeenSet; }
220 inline void SetNotAllowedAggregations(const Aws::Vector<AuthorSpecifiedAggregation>& value) { m_notAllowedAggregationsHasBeenSet = true; m_notAllowedAggregations = value; }
221 inline void SetNotAllowedAggregations(Aws::Vector<AuthorSpecifiedAggregation>&& value) { m_notAllowedAggregationsHasBeenSet = true; m_notAllowedAggregations = std::move(value); }
224 inline TopicColumn& AddNotAllowedAggregations(const AuthorSpecifiedAggregation& value) { m_notAllowedAggregationsHasBeenSet = true; m_notAllowedAggregations.push_back(value); return *this; }
225 inline TopicColumn& AddNotAllowedAggregations(AuthorSpecifiedAggregation&& value) { m_notAllowedAggregationsHasBeenSet = true; m_notAllowedAggregations.push_back(std::move(value)); return *this; }
227
229
232 inline const DefaultFormatting& GetDefaultFormatting() const{ return m_defaultFormatting; }
233 inline bool DefaultFormattingHasBeenSet() const { return m_defaultFormattingHasBeenSet; }
234 inline void SetDefaultFormatting(const DefaultFormatting& value) { m_defaultFormattingHasBeenSet = true; m_defaultFormatting = value; }
235 inline void SetDefaultFormatting(DefaultFormatting&& value) { m_defaultFormattingHasBeenSet = true; m_defaultFormatting = std::move(value); }
236 inline TopicColumn& WithDefaultFormatting(const DefaultFormatting& value) { SetDefaultFormatting(value); return *this;}
237 inline TopicColumn& WithDefaultFormatting(DefaultFormatting&& value) { SetDefaultFormatting(std::move(value)); return *this;}
239
241
245 inline bool GetNeverAggregateInFilter() const{ return m_neverAggregateInFilter; }
246 inline bool NeverAggregateInFilterHasBeenSet() const { return m_neverAggregateInFilterHasBeenSet; }
247 inline void SetNeverAggregateInFilter(bool value) { m_neverAggregateInFilterHasBeenSet = true; m_neverAggregateInFilter = value; }
248 inline TopicColumn& WithNeverAggregateInFilter(bool value) { SetNeverAggregateInFilter(value); return *this;}
250
252
255 inline const Aws::Vector<CellValueSynonym>& GetCellValueSynonyms() const{ return m_cellValueSynonyms; }
256 inline bool CellValueSynonymsHasBeenSet() const { return m_cellValueSynonymsHasBeenSet; }
257 inline void SetCellValueSynonyms(const Aws::Vector<CellValueSynonym>& value) { m_cellValueSynonymsHasBeenSet = true; m_cellValueSynonyms = value; }
258 inline void SetCellValueSynonyms(Aws::Vector<CellValueSynonym>&& value) { m_cellValueSynonymsHasBeenSet = true; m_cellValueSynonyms = std::move(value); }
260 inline TopicColumn& WithCellValueSynonyms(Aws::Vector<CellValueSynonym>&& value) { SetCellValueSynonyms(std::move(value)); return *this;}
261 inline TopicColumn& AddCellValueSynonyms(const CellValueSynonym& value) { m_cellValueSynonymsHasBeenSet = true; m_cellValueSynonyms.push_back(value); return *this; }
262 inline TopicColumn& AddCellValueSynonyms(CellValueSynonym&& value) { m_cellValueSynonymsHasBeenSet = true; m_cellValueSynonyms.push_back(std::move(value)); return *this; }
264
266
269 inline bool GetNonAdditive() const{ return m_nonAdditive; }
270 inline bool NonAdditiveHasBeenSet() const { return m_nonAdditiveHasBeenSet; }
271 inline void SetNonAdditive(bool value) { m_nonAdditiveHasBeenSet = true; m_nonAdditive = value; }
272 inline TopicColumn& WithNonAdditive(bool value) { SetNonAdditive(value); return *this;}
274 private:
275
276 Aws::String m_columnName;
277 bool m_columnNameHasBeenSet = false;
278
279 Aws::String m_columnFriendlyName;
280 bool m_columnFriendlyNameHasBeenSet = false;
281
282 Aws::String m_columnDescription;
283 bool m_columnDescriptionHasBeenSet = false;
284
285 Aws::Vector<Aws::String> m_columnSynonyms;
286 bool m_columnSynonymsHasBeenSet = false;
287
288 ColumnDataRole m_columnDataRole;
289 bool m_columnDataRoleHasBeenSet = false;
290
291 DefaultAggregation m_aggregation;
292 bool m_aggregationHasBeenSet = false;
293
294 bool m_isIncludedInTopic;
295 bool m_isIncludedInTopicHasBeenSet = false;
296
297 bool m_disableIndexing;
298 bool m_disableIndexingHasBeenSet = false;
299
300 ComparativeOrder m_comparativeOrder;
301 bool m_comparativeOrderHasBeenSet = false;
302
303 SemanticType m_semanticType;
304 bool m_semanticTypeHasBeenSet = false;
305
306 TopicTimeGranularity m_timeGranularity;
307 bool m_timeGranularityHasBeenSet = false;
308
309 Aws::Vector<AuthorSpecifiedAggregation> m_allowedAggregations;
310 bool m_allowedAggregationsHasBeenSet = false;
311
312 Aws::Vector<AuthorSpecifiedAggregation> m_notAllowedAggregations;
313 bool m_notAllowedAggregationsHasBeenSet = false;
314
315 DefaultFormatting m_defaultFormatting;
316 bool m_defaultFormattingHasBeenSet = false;
317
318 bool m_neverAggregateInFilter;
319 bool m_neverAggregateInFilterHasBeenSet = false;
320
321 Aws::Vector<CellValueSynonym> m_cellValueSynonyms;
322 bool m_cellValueSynonymsHasBeenSet = false;
323
324 bool m_nonAdditive;
325 bool m_nonAdditiveHasBeenSet = false;
326 };
327
328} // namespace Model
329} // namespace QuickSight
330} // namespace Aws
const Aws::Vector< AuthorSpecifiedAggregation > & GetNotAllowedAggregations() const
const Aws::String & GetColumnDescription() const
Definition TopicColumn.h:81
void SetNotAllowedAggregations(Aws::Vector< AuthorSpecifiedAggregation > &&value)
void SetAggregation(DefaultAggregation &&value)
void SetDefaultFormatting(const DefaultFormatting &value)
const Aws::Vector< CellValueSynonym > & GetCellValueSynonyms() const
TopicColumn & AddNotAllowedAggregations(const AuthorSpecifiedAggregation &value)
void SetSemanticType(const SemanticType &value)
AWS_QUICKSIGHT_API TopicColumn(Aws::Utils::Json::JsonView jsonValue)
TopicColumn & WithDefaultFormatting(const DefaultFormatting &value)
void SetColumnDataRole(const ColumnDataRole &value)
const DefaultFormatting & GetDefaultFormatting() const
TopicColumn & WithColumnDescription(const char *value)
Definition TopicColumn.h:88
TopicColumn & WithDisableIndexing(bool value)
void SetColumnFriendlyName(const char *value)
Definition TopicColumn.h:71
void SetComparativeOrder(const ComparativeOrder &value)
void SetTimeGranularity(TopicTimeGranularity &&value)
TopicColumn & WithColumnDescription(Aws::String &&value)
Definition TopicColumn.h:87
void SetColumnSynonyms(const Aws::Vector< Aws::String > &value)
Definition TopicColumn.h:97
TopicColumn & AddColumnSynonyms(const Aws::String &value)
TopicColumn & WithColumnName(Aws::String &&value)
Definition TopicColumn.h:59
TopicColumn & WithNotAllowedAggregations(Aws::Vector< AuthorSpecifiedAggregation > &&value)
TopicColumn & WithAllowedAggregations(const Aws::Vector< AuthorSpecifiedAggregation > &value)
TopicColumn & AddCellValueSynonyms(CellValueSynonym &&value)
void SetAllowedAggregations(const Aws::Vector< AuthorSpecifiedAggregation > &value)
TopicColumn & AddColumnSynonyms(Aws::String &&value)
TopicColumn & WithSemanticType(SemanticType &&value)
TopicColumn & WithTimeGranularity(const TopicTimeGranularity &value)
TopicColumn & WithColumnName(const char *value)
Definition TopicColumn.h:60
TopicColumn & WithAllowedAggregations(Aws::Vector< AuthorSpecifiedAggregation > &&value)
void SetColumnName(const Aws::String &value)
Definition TopicColumn.h:55
TopicColumn & WithCellValueSynonyms(Aws::Vector< CellValueSynonym > &&value)
void SetColumnDescription(const Aws::String &value)
Definition TopicColumn.h:83
const Aws::String & GetColumnFriendlyName() const
Definition TopicColumn.h:67
void SetColumnSynonyms(Aws::Vector< Aws::String > &&value)
Definition TopicColumn.h:98
void SetComparativeOrder(ComparativeOrder &&value)
void SetSemanticType(SemanticType &&value)
TopicColumn & WithCellValueSynonyms(const Aws::Vector< CellValueSynonym > &value)
TopicColumn & WithColumnFriendlyName(Aws::String &&value)
Definition TopicColumn.h:73
void SetTimeGranularity(const TopicTimeGranularity &value)
TopicColumn & WithColumnDataRole(const ColumnDataRole &value)
void SetCellValueSynonyms(Aws::Vector< CellValueSynonym > &&value)
void SetNeverAggregateInFilter(bool value)
TopicColumn & AddColumnSynonyms(const char *value)
TopicColumn & WithColumnDescription(const Aws::String &value)
Definition TopicColumn.h:86
TopicColumn & WithSemanticType(const SemanticType &value)
const SemanticType & GetSemanticType() const
void SetColumnFriendlyName(const Aws::String &value)
Definition TopicColumn.h:69
void SetNotAllowedAggregations(const Aws::Vector< AuthorSpecifiedAggregation > &value)
const TopicTimeGranularity & GetTimeGranularity() const
const Aws::Vector< Aws::String > & GetColumnSynonyms() const
Definition TopicColumn.h:95
void SetColumnName(const char *value)
Definition TopicColumn.h:57
TopicColumn & WithColumnFriendlyName(const char *value)
Definition TopicColumn.h:74
TopicColumn & WithAggregation(const DefaultAggregation &value)
TopicColumn & WithColumnDataRole(ColumnDataRole &&value)
TopicColumn & WithIsIncludedInTopic(bool value)
const DefaultAggregation & GetAggregation() const
void SetDefaultFormatting(DefaultFormatting &&value)
AWS_QUICKSIGHT_API TopicColumn & operator=(Aws::Utils::Json::JsonView jsonValue)
AWS_QUICKSIGHT_API Aws::Utils::Json::JsonValue Jsonize() const
void SetColumnDescription(Aws::String &&value)
Definition TopicColumn.h:84
TopicColumn & WithComparativeOrder(const ComparativeOrder &value)
TopicColumn & WithTimeGranularity(TopicTimeGranularity &&value)
TopicColumn & WithColumnSynonyms(Aws::Vector< Aws::String > &&value)
void SetColumnDescription(const char *value)
Definition TopicColumn.h:85
void SetColumnFriendlyName(Aws::String &&value)
Definition TopicColumn.h:70
TopicColumn & WithNeverAggregateInFilter(bool value)
TopicColumn & AddCellValueSynonyms(const CellValueSynonym &value)
TopicColumn & WithColumnFriendlyName(const Aws::String &value)
Definition TopicColumn.h:72
TopicColumn & AddAllowedAggregations(AuthorSpecifiedAggregation &&value)
const Aws::Vector< AuthorSpecifiedAggregation > & GetAllowedAggregations() const
TopicColumn & WithColumnName(const Aws::String &value)
Definition TopicColumn.h:58
void SetAllowedAggregations(Aws::Vector< AuthorSpecifiedAggregation > &&value)
void SetCellValueSynonyms(const Aws::Vector< CellValueSynonym > &value)
TopicColumn & AddNotAllowedAggregations(AuthorSpecifiedAggregation &&value)
void SetAggregation(const DefaultAggregation &value)
void SetColumnDataRole(ColumnDataRole &&value)
TopicColumn & AddAllowedAggregations(const AuthorSpecifiedAggregation &value)
TopicColumn & WithNonAdditive(bool value)
TopicColumn & WithAggregation(DefaultAggregation &&value)
const ComparativeOrder & GetComparativeOrder() const
const ColumnDataRole & GetColumnDataRole() const
AWS_QUICKSIGHT_API TopicColumn()
const Aws::String & GetColumnName() const
Definition TopicColumn.h:53
TopicColumn & WithDefaultFormatting(DefaultFormatting &&value)
TopicColumn & WithComparativeOrder(ComparativeOrder &&value)
TopicColumn & WithNotAllowedAggregations(const Aws::Vector< AuthorSpecifiedAggregation > &value)
void SetColumnName(Aws::String &&value)
Definition TopicColumn.h:56
TopicColumn & WithColumnSynonyms(const Aws::Vector< Aws::String > &value)
Definition TopicColumn.h:99
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue