1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/appstream/model/ResourceError.h>
7 #include <aws/core/utils/json/JsonSerializer.h>
8 
9 #include <utility>
10 
11 using namespace Aws::Utils::Json;
12 using namespace Aws::Utils;
13 
14 namespace Aws
15 {
16 namespace AppStream
17 {
18 namespace Model
19 {
20 
ResourceError()21 ResourceError::ResourceError() :
22     m_errorCode(FleetErrorCode::NOT_SET),
23     m_errorCodeHasBeenSet(false),
24     m_errorMessageHasBeenSet(false),
25     m_errorTimestampHasBeenSet(false)
26 {
27 }
28 
ResourceError(JsonView jsonValue)29 ResourceError::ResourceError(JsonView jsonValue) :
30     m_errorCode(FleetErrorCode::NOT_SET),
31     m_errorCodeHasBeenSet(false),
32     m_errorMessageHasBeenSet(false),
33     m_errorTimestampHasBeenSet(false)
34 {
35   *this = jsonValue;
36 }
37 
operator =(JsonView jsonValue)38 ResourceError& ResourceError::operator =(JsonView jsonValue)
39 {
40   if(jsonValue.ValueExists("ErrorCode"))
41   {
42     m_errorCode = FleetErrorCodeMapper::GetFleetErrorCodeForName(jsonValue.GetString("ErrorCode"));
43 
44     m_errorCodeHasBeenSet = true;
45   }
46 
47   if(jsonValue.ValueExists("ErrorMessage"))
48   {
49     m_errorMessage = jsonValue.GetString("ErrorMessage");
50 
51     m_errorMessageHasBeenSet = true;
52   }
53 
54   if(jsonValue.ValueExists("ErrorTimestamp"))
55   {
56     m_errorTimestamp = jsonValue.GetDouble("ErrorTimestamp");
57 
58     m_errorTimestampHasBeenSet = true;
59   }
60 
61   return *this;
62 }
63 
Jsonize() const64 JsonValue ResourceError::Jsonize() const
65 {
66   JsonValue payload;
67 
68   if(m_errorCodeHasBeenSet)
69   {
70    payload.WithString("ErrorCode", FleetErrorCodeMapper::GetNameForFleetErrorCode(m_errorCode));
71   }
72 
73   if(m_errorMessageHasBeenSet)
74   {
75    payload.WithString("ErrorMessage", m_errorMessage);
76 
77   }
78 
79   if(m_errorTimestampHasBeenSet)
80   {
81    payload.WithDouble("ErrorTimestamp", m_errorTimestamp.SecondsWithMSPrecision());
82   }
83 
84   return payload;
85 }
86 
87 } // namespace Model
88 } // namespace AppStream
89 } // namespace Aws
90