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()20GetTemplateResult::GetTemplateResult() 21 { 22 } 23 GetTemplateResult(const Aws::AmazonWebServiceResult<XmlDocument> & result)24GetTemplateResult::GetTemplateResult(const Aws::AmazonWebServiceResult<XmlDocument>& result) 25 { 26 *this = result; 27 } 28 operator =(const Aws::AmazonWebServiceResult<XmlDocument> & result)29GetTemplateResult& 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