AWS SDK for C++

AWS SDK for C++ Version 1.11.607

Loading...
Searching...
No Matches
CreateKxClusterResult.h
1
6#pragma once
7#include <aws/finspace/Finspace_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSString.h>
9#include <aws/finspace/model/KxClusterStatus.h>
10#include <aws/finspace/model/KxClusterType.h>
11#include <aws/finspace/model/TickerplantLogConfiguration.h>
12#include <aws/core/utils/memory/stl/AWSVector.h>
13#include <aws/finspace/model/AutoScalingConfiguration.h>
14#include <aws/finspace/model/CapacityConfiguration.h>
15#include <aws/finspace/model/VpcConfiguration.h>
16#include <aws/finspace/model/CodeConfiguration.h>
17#include <aws/core/utils/DateTime.h>
18#include <aws/finspace/model/KxSavedownStorageConfiguration.h>
19#include <aws/finspace/model/KxAzMode.h>
20#include <aws/finspace/model/KxScalingGroupConfiguration.h>
21#include <aws/finspace/model/Volume.h>
22#include <aws/finspace/model/KxDatabaseConfiguration.h>
23#include <aws/finspace/model/KxCacheStorageConfiguration.h>
24#include <aws/finspace/model/KxCommandLineArgument.h>
25#include <utility>
26
27namespace Aws
28{
29template<typename RESULT_TYPE>
30class AmazonWebServiceResult;
31
32namespace Utils
33{
34namespace Json
35{
36 class JsonValue;
37} // namespace Json
38} // namespace Utils
39namespace finspace
40{
41namespace Model
42{
44 {
45 public:
46 AWS_FINSPACE_API CreateKxClusterResult() = default;
49
50
52
55 inline const Aws::String& GetEnvironmentId() const { return m_environmentId; }
56 template<typename EnvironmentIdT = Aws::String>
57 void SetEnvironmentId(EnvironmentIdT&& value) { m_environmentIdHasBeenSet = true; m_environmentId = std::forward<EnvironmentIdT>(value); }
58 template<typename EnvironmentIdT = Aws::String>
59 CreateKxClusterResult& WithEnvironmentId(EnvironmentIdT&& value) { SetEnvironmentId(std::forward<EnvironmentIdT>(value)); return *this;}
61
63
73 inline KxClusterStatus GetStatus() const { return m_status; }
74 inline void SetStatus(KxClusterStatus value) { m_statusHasBeenSet = true; m_status = value; }
75 inline CreateKxClusterResult& WithStatus(KxClusterStatus value) { SetStatus(value); return *this;}
77
79
82 inline const Aws::String& GetStatusReason() const { return m_statusReason; }
83 template<typename StatusReasonT = Aws::String>
84 void SetStatusReason(StatusReasonT&& value) { m_statusReasonHasBeenSet = true; m_statusReason = std::forward<StatusReasonT>(value); }
85 template<typename StatusReasonT = Aws::String>
86 CreateKxClusterResult& WithStatusReason(StatusReasonT&& value) { SetStatusReason(std::forward<StatusReasonT>(value)); return *this;}
88
90
93 inline const Aws::String& GetClusterName() const { return m_clusterName; }
94 template<typename ClusterNameT = Aws::String>
95 void SetClusterName(ClusterNameT&& value) { m_clusterNameHasBeenSet = true; m_clusterName = std::forward<ClusterNameT>(value); }
96 template<typename ClusterNameT = Aws::String>
97 CreateKxClusterResult& WithClusterName(ClusterNameT&& value) { SetClusterName(std::forward<ClusterNameT>(value)); return *this;}
99
101
126 inline KxClusterType GetClusterType() const { return m_clusterType; }
127 inline void SetClusterType(KxClusterType value) { m_clusterTypeHasBeenSet = true; m_clusterType = value; }
130
132
133 inline const TickerplantLogConfiguration& GetTickerplantLogConfiguration() const { return m_tickerplantLogConfiguration; }
134 template<typename TickerplantLogConfigurationT = TickerplantLogConfiguration>
135 void SetTickerplantLogConfiguration(TickerplantLogConfigurationT&& value) { m_tickerplantLogConfigurationHasBeenSet = true; m_tickerplantLogConfiguration = std::forward<TickerplantLogConfigurationT>(value); }
136 template<typename TickerplantLogConfigurationT = TickerplantLogConfiguration>
137 CreateKxClusterResult& WithTickerplantLogConfiguration(TickerplantLogConfigurationT&& value) { SetTickerplantLogConfiguration(std::forward<TickerplantLogConfigurationT>(value)); return *this;}
139
141
144 inline const Aws::Vector<Volume>& GetVolumes() const { return m_volumes; }
145 template<typename VolumesT = Aws::Vector<Volume>>
146 void SetVolumes(VolumesT&& value) { m_volumesHasBeenSet = true; m_volumes = std::forward<VolumesT>(value); }
147 template<typename VolumesT = Aws::Vector<Volume>>
148 CreateKxClusterResult& WithVolumes(VolumesT&& value) { SetVolumes(std::forward<VolumesT>(value)); return *this;}
149 template<typename VolumesT = Volume>
150 CreateKxClusterResult& AddVolumes(VolumesT&& value) { m_volumesHasBeenSet = true; m_volumes.emplace_back(std::forward<VolumesT>(value)); return *this; }
152
154
157 inline const Aws::Vector<KxDatabaseConfiguration>& GetDatabases() const { return m_databases; }
158 template<typename DatabasesT = Aws::Vector<KxDatabaseConfiguration>>
159 void SetDatabases(DatabasesT&& value) { m_databasesHasBeenSet = true; m_databases = std::forward<DatabasesT>(value); }
160 template<typename DatabasesT = Aws::Vector<KxDatabaseConfiguration>>
161 CreateKxClusterResult& WithDatabases(DatabasesT&& value) { SetDatabases(std::forward<DatabasesT>(value)); return *this;}
162 template<typename DatabasesT = KxDatabaseConfiguration>
163 CreateKxClusterResult& AddDatabases(DatabasesT&& value) { m_databasesHasBeenSet = true; m_databases.emplace_back(std::forward<DatabasesT>(value)); return *this; }
165
167
171 inline const Aws::Vector<KxCacheStorageConfiguration>& GetCacheStorageConfigurations() const { return m_cacheStorageConfigurations; }
172 template<typename CacheStorageConfigurationsT = Aws::Vector<KxCacheStorageConfiguration>>
173 void SetCacheStorageConfigurations(CacheStorageConfigurationsT&& value) { m_cacheStorageConfigurationsHasBeenSet = true; m_cacheStorageConfigurations = std::forward<CacheStorageConfigurationsT>(value); }
174 template<typename CacheStorageConfigurationsT = Aws::Vector<KxCacheStorageConfiguration>>
175 CreateKxClusterResult& WithCacheStorageConfigurations(CacheStorageConfigurationsT&& value) { SetCacheStorageConfigurations(std::forward<CacheStorageConfigurationsT>(value)); return *this;}
176 template<typename CacheStorageConfigurationsT = KxCacheStorageConfiguration>
177 CreateKxClusterResult& AddCacheStorageConfigurations(CacheStorageConfigurationsT&& value) { m_cacheStorageConfigurationsHasBeenSet = true; m_cacheStorageConfigurations.emplace_back(std::forward<CacheStorageConfigurationsT>(value)); return *this; }
179
181
185 inline const AutoScalingConfiguration& GetAutoScalingConfiguration() const { return m_autoScalingConfiguration; }
186 template<typename AutoScalingConfigurationT = AutoScalingConfiguration>
187 void SetAutoScalingConfiguration(AutoScalingConfigurationT&& value) { m_autoScalingConfigurationHasBeenSet = true; m_autoScalingConfiguration = std::forward<AutoScalingConfigurationT>(value); }
188 template<typename AutoScalingConfigurationT = AutoScalingConfiguration>
189 CreateKxClusterResult& WithAutoScalingConfiguration(AutoScalingConfigurationT&& value) { SetAutoScalingConfiguration(std::forward<AutoScalingConfigurationT>(value)); return *this;}
191
193
196 inline const Aws::String& GetClusterDescription() const { return m_clusterDescription; }
197 template<typename ClusterDescriptionT = Aws::String>
198 void SetClusterDescription(ClusterDescriptionT&& value) { m_clusterDescriptionHasBeenSet = true; m_clusterDescription = std::forward<ClusterDescriptionT>(value); }
199 template<typename ClusterDescriptionT = Aws::String>
200 CreateKxClusterResult& WithClusterDescription(ClusterDescriptionT&& value) { SetClusterDescription(std::forward<ClusterDescriptionT>(value)); return *this;}
202
204
208 inline const CapacityConfiguration& GetCapacityConfiguration() const { return m_capacityConfiguration; }
209 template<typename CapacityConfigurationT = CapacityConfiguration>
210 void SetCapacityConfiguration(CapacityConfigurationT&& value) { m_capacityConfigurationHasBeenSet = true; m_capacityConfiguration = std::forward<CapacityConfigurationT>(value); }
211 template<typename CapacityConfigurationT = CapacityConfiguration>
212 CreateKxClusterResult& WithCapacityConfiguration(CapacityConfigurationT&& value) { SetCapacityConfiguration(std::forward<CapacityConfigurationT>(value)); return *this;}
214
216
219 inline const Aws::String& GetReleaseLabel() const { return m_releaseLabel; }
220 template<typename ReleaseLabelT = Aws::String>
221 void SetReleaseLabel(ReleaseLabelT&& value) { m_releaseLabelHasBeenSet = true; m_releaseLabel = std::forward<ReleaseLabelT>(value); }
222 template<typename ReleaseLabelT = Aws::String>
223 CreateKxClusterResult& WithReleaseLabel(ReleaseLabelT&& value) { SetReleaseLabel(std::forward<ReleaseLabelT>(value)); return *this;}
225
227
231 inline const VpcConfiguration& GetVpcConfiguration() const { return m_vpcConfiguration; }
232 template<typename VpcConfigurationT = VpcConfiguration>
233 void SetVpcConfiguration(VpcConfigurationT&& value) { m_vpcConfigurationHasBeenSet = true; m_vpcConfiguration = std::forward<VpcConfigurationT>(value); }
234 template<typename VpcConfigurationT = VpcConfiguration>
235 CreateKxClusterResult& WithVpcConfiguration(VpcConfigurationT&& value) { SetVpcConfiguration(std::forward<VpcConfigurationT>(value)); return *this;}
237
239
245 inline const Aws::String& GetInitializationScript() const { return m_initializationScript; }
246 template<typename InitializationScriptT = Aws::String>
247 void SetInitializationScript(InitializationScriptT&& value) { m_initializationScriptHasBeenSet = true; m_initializationScript = std::forward<InitializationScriptT>(value); }
248 template<typename InitializationScriptT = Aws::String>
249 CreateKxClusterResult& WithInitializationScript(InitializationScriptT&& value) { SetInitializationScript(std::forward<InitializationScriptT>(value)); return *this;}
251
253
256 inline const Aws::Vector<KxCommandLineArgument>& GetCommandLineArguments() const { return m_commandLineArguments; }
257 template<typename CommandLineArgumentsT = Aws::Vector<KxCommandLineArgument>>
258 void SetCommandLineArguments(CommandLineArgumentsT&& value) { m_commandLineArgumentsHasBeenSet = true; m_commandLineArguments = std::forward<CommandLineArgumentsT>(value); }
259 template<typename CommandLineArgumentsT = Aws::Vector<KxCommandLineArgument>>
260 CreateKxClusterResult& WithCommandLineArguments(CommandLineArgumentsT&& value) { SetCommandLineArguments(std::forward<CommandLineArgumentsT>(value)); return *this;}
261 template<typename CommandLineArgumentsT = KxCommandLineArgument>
262 CreateKxClusterResult& AddCommandLineArguments(CommandLineArgumentsT&& value) { m_commandLineArgumentsHasBeenSet = true; m_commandLineArguments.emplace_back(std::forward<CommandLineArgumentsT>(value)); return *this; }
264
266
272 inline const CodeConfiguration& GetCode() const { return m_code; }
273 template<typename CodeT = CodeConfiguration>
274 void SetCode(CodeT&& value) { m_codeHasBeenSet = true; m_code = std::forward<CodeT>(value); }
275 template<typename CodeT = CodeConfiguration>
276 CreateKxClusterResult& WithCode(CodeT&& value) { SetCode(std::forward<CodeT>(value)); return *this;}
278
280
285 inline const Aws::String& GetExecutionRole() const { return m_executionRole; }
286 template<typename ExecutionRoleT = Aws::String>
287 void SetExecutionRole(ExecutionRoleT&& value) { m_executionRoleHasBeenSet = true; m_executionRole = std::forward<ExecutionRoleT>(value); }
288 template<typename ExecutionRoleT = Aws::String>
289 CreateKxClusterResult& WithExecutionRole(ExecutionRoleT&& value) { SetExecutionRole(std::forward<ExecutionRoleT>(value)); return *this;}
291
293
298 inline const Aws::Utils::DateTime& GetLastModifiedTimestamp() const { return m_lastModifiedTimestamp; }
299 template<typename LastModifiedTimestampT = Aws::Utils::DateTime>
300 void SetLastModifiedTimestamp(LastModifiedTimestampT&& value) { m_lastModifiedTimestampHasBeenSet = true; m_lastModifiedTimestamp = std::forward<LastModifiedTimestampT>(value); }
301 template<typename LastModifiedTimestampT = Aws::Utils::DateTime>
302 CreateKxClusterResult& WithLastModifiedTimestamp(LastModifiedTimestampT&& value) { SetLastModifiedTimestamp(std::forward<LastModifiedTimestampT>(value)); return *this;}
304
306
312 inline const KxSavedownStorageConfiguration& GetSavedownStorageConfiguration() const { return m_savedownStorageConfiguration; }
313 template<typename SavedownStorageConfigurationT = KxSavedownStorageConfiguration>
314 void SetSavedownStorageConfiguration(SavedownStorageConfigurationT&& value) { m_savedownStorageConfigurationHasBeenSet = true; m_savedownStorageConfiguration = std::forward<SavedownStorageConfigurationT>(value); }
315 template<typename SavedownStorageConfigurationT = KxSavedownStorageConfiguration>
316 CreateKxClusterResult& WithSavedownStorageConfiguration(SavedownStorageConfigurationT&& value) { SetSavedownStorageConfiguration(std::forward<SavedownStorageConfigurationT>(value)); return *this;}
318
320
326 inline KxAzMode GetAzMode() const { return m_azMode; }
327 inline void SetAzMode(KxAzMode value) { m_azModeHasBeenSet = true; m_azMode = value; }
328 inline CreateKxClusterResult& WithAzMode(KxAzMode value) { SetAzMode(value); return *this;}
330
332
335 inline const Aws::String& GetAvailabilityZoneId() const { return m_availabilityZoneId; }
336 template<typename AvailabilityZoneIdT = Aws::String>
337 void SetAvailabilityZoneId(AvailabilityZoneIdT&& value) { m_availabilityZoneIdHasBeenSet = true; m_availabilityZoneId = std::forward<AvailabilityZoneIdT>(value); }
338 template<typename AvailabilityZoneIdT = Aws::String>
339 CreateKxClusterResult& WithAvailabilityZoneId(AvailabilityZoneIdT&& value) { SetAvailabilityZoneId(std::forward<AvailabilityZoneIdT>(value)); return *this;}
341
343
348 inline const Aws::Utils::DateTime& GetCreatedTimestamp() const { return m_createdTimestamp; }
349 template<typename CreatedTimestampT = Aws::Utils::DateTime>
350 void SetCreatedTimestamp(CreatedTimestampT&& value) { m_createdTimestampHasBeenSet = true; m_createdTimestamp = std::forward<CreatedTimestampT>(value); }
351 template<typename CreatedTimestampT = Aws::Utils::DateTime>
352 CreateKxClusterResult& WithCreatedTimestamp(CreatedTimestampT&& value) { SetCreatedTimestamp(std::forward<CreatedTimestampT>(value)); return *this;}
354
356
359 inline const KxScalingGroupConfiguration& GetScalingGroupConfiguration() const { return m_scalingGroupConfiguration; }
360 template<typename ScalingGroupConfigurationT = KxScalingGroupConfiguration>
361 void SetScalingGroupConfiguration(ScalingGroupConfigurationT&& value) { m_scalingGroupConfigurationHasBeenSet = true; m_scalingGroupConfiguration = std::forward<ScalingGroupConfigurationT>(value); }
362 template<typename ScalingGroupConfigurationT = KxScalingGroupConfiguration>
363 CreateKxClusterResult& WithScalingGroupConfiguration(ScalingGroupConfigurationT&& value) { SetScalingGroupConfiguration(std::forward<ScalingGroupConfigurationT>(value)); return *this;}
365
367
368 inline const Aws::String& GetRequestId() const { return m_requestId; }
369 template<typename RequestIdT = Aws::String>
370 void SetRequestId(RequestIdT&& value) { m_requestIdHasBeenSet = true; m_requestId = std::forward<RequestIdT>(value); }
371 template<typename RequestIdT = Aws::String>
372 CreateKxClusterResult& WithRequestId(RequestIdT&& value) { SetRequestId(std::forward<RequestIdT>(value)); return *this;}
374 private:
375
376 Aws::String m_environmentId;
377 bool m_environmentIdHasBeenSet = false;
378
380 bool m_statusHasBeenSet = false;
381
382 Aws::String m_statusReason;
383 bool m_statusReasonHasBeenSet = false;
384
385 Aws::String m_clusterName;
386 bool m_clusterNameHasBeenSet = false;
387
389 bool m_clusterTypeHasBeenSet = false;
390
391 TickerplantLogConfiguration m_tickerplantLogConfiguration;
392 bool m_tickerplantLogConfigurationHasBeenSet = false;
393
394 Aws::Vector<Volume> m_volumes;
395 bool m_volumesHasBeenSet = false;
396
398 bool m_databasesHasBeenSet = false;
399
400 Aws::Vector<KxCacheStorageConfiguration> m_cacheStorageConfigurations;
401 bool m_cacheStorageConfigurationsHasBeenSet = false;
402
403 AutoScalingConfiguration m_autoScalingConfiguration;
404 bool m_autoScalingConfigurationHasBeenSet = false;
405
406 Aws::String m_clusterDescription;
407 bool m_clusterDescriptionHasBeenSet = false;
408
409 CapacityConfiguration m_capacityConfiguration;
410 bool m_capacityConfigurationHasBeenSet = false;
411
412 Aws::String m_releaseLabel;
413 bool m_releaseLabelHasBeenSet = false;
414
415 VpcConfiguration m_vpcConfiguration;
416 bool m_vpcConfigurationHasBeenSet = false;
417
418 Aws::String m_initializationScript;
419 bool m_initializationScriptHasBeenSet = false;
420
421 Aws::Vector<KxCommandLineArgument> m_commandLineArguments;
422 bool m_commandLineArgumentsHasBeenSet = false;
423
424 CodeConfiguration m_code;
425 bool m_codeHasBeenSet = false;
426
427 Aws::String m_executionRole;
428 bool m_executionRoleHasBeenSet = false;
429
430 Aws::Utils::DateTime m_lastModifiedTimestamp{};
431 bool m_lastModifiedTimestampHasBeenSet = false;
432
433 KxSavedownStorageConfiguration m_savedownStorageConfiguration;
434 bool m_savedownStorageConfigurationHasBeenSet = false;
435
436 KxAzMode m_azMode{KxAzMode::NOT_SET};
437 bool m_azModeHasBeenSet = false;
438
439 Aws::String m_availabilityZoneId;
440 bool m_availabilityZoneIdHasBeenSet = false;
441
442 Aws::Utils::DateTime m_createdTimestamp{};
443 bool m_createdTimestampHasBeenSet = false;
444
445 KxScalingGroupConfiguration m_scalingGroupConfiguration;
446 bool m_scalingGroupConfigurationHasBeenSet = false;
447
448 Aws::String m_requestId;
449 bool m_requestIdHasBeenSet = false;
450 };
451
452} // namespace Model
453} // namespace finspace
454} // namespace Aws
void SetAvailabilityZoneId(AvailabilityZoneIdT &&value)
CreateKxClusterResult & AddCacheStorageConfigurations(CacheStorageConfigurationsT &&value)
void SetAutoScalingConfiguration(AutoScalingConfigurationT &&value)
CreateKxClusterResult & AddDatabases(DatabasesT &&value)
CreateKxClusterResult & WithAzMode(KxAzMode value)
void SetSavedownStorageConfiguration(SavedownStorageConfigurationT &&value)
CreateKxClusterResult & WithAvailabilityZoneId(AvailabilityZoneIdT &&value)
const KxSavedownStorageConfiguration & GetSavedownStorageConfiguration() const
CreateKxClusterResult & WithInitializationScript(InitializationScriptT &&value)
void SetScalingGroupConfiguration(ScalingGroupConfigurationT &&value)
void SetClusterDescription(ClusterDescriptionT &&value)
const Aws::Utils::DateTime & GetLastModifiedTimestamp() const
void SetCreatedTimestamp(CreatedTimestampT &&value)
CreateKxClusterResult & WithStatus(KxClusterStatus value)
CreateKxClusterResult & WithDatabases(DatabasesT &&value)
CreateKxClusterResult & WithLastModifiedTimestamp(LastModifiedTimestampT &&value)
const Aws::Vector< KxCommandLineArgument > & GetCommandLineArguments() const
CreateKxClusterResult & WithClusterName(ClusterNameT &&value)
const TickerplantLogConfiguration & GetTickerplantLogConfiguration() const
CreateKxClusterResult & WithExecutionRole(ExecutionRoleT &&value)
void SetCommandLineArguments(CommandLineArgumentsT &&value)
CreateKxClusterResult & WithSavedownStorageConfiguration(SavedownStorageConfigurationT &&value)
AWS_FINSPACE_API CreateKxClusterResult & operator=(const Aws::AmazonWebServiceResult< Aws::Utils::Json::JsonValue > &result)
CreateKxClusterResult & AddVolumes(VolumesT &&value)
CreateKxClusterResult & WithRequestId(RequestIdT &&value)
CreateKxClusterResult & WithClusterType(KxClusterType value)
AWS_FINSPACE_API CreateKxClusterResult(const Aws::AmazonWebServiceResult< Aws::Utils::Json::JsonValue > &result)
const VpcConfiguration & GetVpcConfiguration() const
CreateKxClusterResult & WithStatusReason(StatusReasonT &&value)
const CapacityConfiguration & GetCapacityConfiguration() const
CreateKxClusterResult & WithCacheStorageConfigurations(CacheStorageConfigurationsT &&value)
void SetInitializationScript(InitializationScriptT &&value)
const Aws::Vector< Volume > & GetVolumes() const
CreateKxClusterResult & WithTickerplantLogConfiguration(TickerplantLogConfigurationT &&value)
AWS_FINSPACE_API CreateKxClusterResult()=default
const Aws::Vector< KxDatabaseConfiguration > & GetDatabases() const
void SetLastModifiedTimestamp(LastModifiedTimestampT &&value)
const AutoScalingConfiguration & GetAutoScalingConfiguration() const
CreateKxClusterResult & WithClusterDescription(ClusterDescriptionT &&value)
CreateKxClusterResult & AddCommandLineArguments(CommandLineArgumentsT &&value)
CreateKxClusterResult & WithCommandLineArguments(CommandLineArgumentsT &&value)
const Aws::Vector< KxCacheStorageConfiguration > & GetCacheStorageConfigurations() const
CreateKxClusterResult & WithAutoScalingConfiguration(AutoScalingConfigurationT &&value)
const KxScalingGroupConfiguration & GetScalingGroupConfiguration() const
CreateKxClusterResult & WithVpcConfiguration(VpcConfigurationT &&value)
CreateKxClusterResult & WithCapacityConfiguration(CapacityConfigurationT &&value)
void SetTickerplantLogConfiguration(TickerplantLogConfigurationT &&value)
void SetCapacityConfiguration(CapacityConfigurationT &&value)
CreateKxClusterResult & WithScalingGroupConfiguration(ScalingGroupConfigurationT &&value)
CreateKxClusterResult & WithReleaseLabel(ReleaseLabelT &&value)
CreateKxClusterResult & WithCode(CodeT &&value)
CreateKxClusterResult & WithVolumes(VolumesT &&value)
void SetCacheStorageConfigurations(CacheStorageConfigurationsT &&value)
void SetVpcConfiguration(VpcConfigurationT &&value)
CreateKxClusterResult & WithCreatedTimestamp(CreatedTimestampT &&value)
const Aws::Utils::DateTime & GetCreatedTimestamp() const
CreateKxClusterResult & WithEnvironmentId(EnvironmentIdT &&value)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue