1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/cloudformation/model/GetTemplateResult.h>
7 #include <aws/core/utils/xml/XmlSerializer.h>
8 #include <aws/core/AmazonWebServiceResult.h>
9 #include <aws/core/utils/StringUtils.h>
10 #include <aws/core/utils/logging/LogMacros.h>
11 
12 #include <utility>
13 
14 using namespace Aws::CloudFormation::Model;
15 using namespace Aws::Utils::Xml;
16 using namespace Aws::Utils::Logging;
17 using namespace Aws::Utils;
18 using namespace Aws;
19 
GetTemplateResult()20 GetTemplateResult::GetTemplateResult()
21 {
22 }
23 
GetTemplateResult(const Aws::AmazonWebServiceResult<XmlDocument> & result)24 GetTemplateResult::GetTemplateResult(const Aws::AmazonWebServiceResult<XmlDocument>& result)
25 {
26   *this = result;
27 }
28 
operator =(const Aws::AmazonWebServiceResult<XmlDocument> & result)29 GetTemplateResult& GetTemplateResult::operator =(const Aws::AmazonWebServiceResult<XmlDocument>& result)
30 {
31   const XmlDocument& xmlDocument = result.GetPayload();
32   XmlNode rootNode = xmlDocument.GetRootElement();
33   XmlNode resultNode = rootNode;
34   if (!rootNode.IsNull() && (rootNode.GetName() != "GetTemplateResult"))
35   {
36     resultNode = rootNode.FirstChild("GetTemplateResult");
37   }
38 
39   if(!resultNode.IsNull())
40   {
41     XmlNode templateBodyNode = resultNode.FirstChild("TemplateBody");
42     if(!templateBodyNode.IsNull())
43     {
44       m_templateBody = Aws::Utils::Xml::DecodeEscapedXmlText(templateBodyNode.GetText());
45     }
46     XmlNode stagesAvailableNode = resultNode.FirstChild("StagesAvailable");
47     if(!stagesAvailableNode.IsNull())
48     {
49       XmlNode stagesAvailableMember = stagesAvailableNode.FirstChild("member");
50       while(!stagesAvailableMember.IsNull())
51       {
52         m_stagesAvailable.push_back(TemplateStageMapper::GetTemplateStageForName(StringUtils::Trim(stagesAvailableMember.GetText().c_str())));
53         stagesAvailableMember = stagesAvailableMember.NextNode("member");
54       }
55 
56     }
57   }
58 
59   if (!rootNode.IsNull()) {
60     XmlNode responseMetadataNode = rootNode.FirstChild("ResponseMetadata");
61     m_responseMetadata = responseMetadataNode;
62     AWS_LOGSTREAM_DEBUG("Aws::CloudFormation::Model::GetTemplateResult", "x-amzn-request-id: " << m_responseMetadata.GetRequestId() );
63   }
64   return *this;
65 }
66