1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/s3control/model/PrefixLevelStorageMetrics.h>
7 #include <aws/core/utils/xml/XmlSerializer.h>
8 #include <aws/core/utils/StringUtils.h>
9 #include <aws/core/utils/memory/stl/AWSStringStream.h>
10 
11 #include <utility>
12 
13 using namespace Aws::Utils::Xml;
14 using namespace Aws::Utils;
15 
16 namespace Aws
17 {
18 namespace S3Control
19 {
20 namespace Model
21 {
22 
PrefixLevelStorageMetrics()23 PrefixLevelStorageMetrics::PrefixLevelStorageMetrics() :
24     m_isEnabled(false),
25     m_isEnabledHasBeenSet(false),
26     m_selectionCriteriaHasBeenSet(false)
27 {
28 }
29 
PrefixLevelStorageMetrics(const XmlNode & xmlNode)30 PrefixLevelStorageMetrics::PrefixLevelStorageMetrics(const XmlNode& xmlNode) :
31     m_isEnabled(false),
32     m_isEnabledHasBeenSet(false),
33     m_selectionCriteriaHasBeenSet(false)
34 {
35   *this = xmlNode;
36 }
37 
operator =(const XmlNode & xmlNode)38 PrefixLevelStorageMetrics& PrefixLevelStorageMetrics::operator =(const XmlNode& xmlNode)
39 {
40   XmlNode resultNode = xmlNode;
41 
42   if(!resultNode.IsNull())
43   {
44     XmlNode isEnabledNode = resultNode.FirstChild("IsEnabled");
45     if(!isEnabledNode.IsNull())
46     {
47       m_isEnabled = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(isEnabledNode.GetText()).c_str()).c_str());
48       m_isEnabledHasBeenSet = true;
49     }
50     XmlNode selectionCriteriaNode = resultNode.FirstChild("SelectionCriteria");
51     if(!selectionCriteriaNode.IsNull())
52     {
53       m_selectionCriteria = selectionCriteriaNode;
54       m_selectionCriteriaHasBeenSet = true;
55     }
56   }
57 
58   return *this;
59 }
60 
AddToNode(XmlNode & parentNode) const61 void PrefixLevelStorageMetrics::AddToNode(XmlNode& parentNode) const
62 {
63   Aws::StringStream ss;
64   if(m_isEnabledHasBeenSet)
65   {
66    XmlNode isEnabledNode = parentNode.CreateChildElement("IsEnabled");
67    ss << std::boolalpha << m_isEnabled;
68    isEnabledNode.SetText(ss.str());
69    ss.str("");
70   }
71 
72   if(m_selectionCriteriaHasBeenSet)
73   {
74    XmlNode selectionCriteriaNode = parentNode.CreateChildElement("SelectionCriteria");
75    m_selectionCriteria.AddToNode(selectionCriteriaNode);
76   }
77 
78 }
79 
80 } // namespace Model
81 } // namespace S3Control
82 } // namespace Aws
83