1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/sns/SNS_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <utility> 11 12 namespace Aws 13 { 14 namespace Utils 15 { 16 namespace Xml 17 { 18 class XmlNode; 19 } // namespace Xml 20 } // namespace Utils 21 namespace SNS 22 { 23 namespace Model 24 { 25 26 /** 27 * <p>A wrapper type for the topic's Amazon Resource Name (ARN). To retrieve a 28 * topic's attributes, use <code>GetTopicAttributes</code>.</p><p><h3>See 29 * Also:</h3> <a 30 * href="http://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/Topic">AWS API 31 * Reference</a></p> 32 */ 33 class AWS_SNS_API Topic 34 { 35 public: 36 Topic(); 37 Topic(const Aws::Utils::Xml::XmlNode& xmlNode); 38 Topic& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); 39 40 void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; 41 void OutputToStream(Aws::OStream& oStream, const char* location) const; 42 43 44 /** 45 * <p>The topic's ARN.</p> 46 */ GetTopicArn()47 inline const Aws::String& GetTopicArn() const{ return m_topicArn; } 48 49 /** 50 * <p>The topic's ARN.</p> 51 */ TopicArnHasBeenSet()52 inline bool TopicArnHasBeenSet() const { return m_topicArnHasBeenSet; } 53 54 /** 55 * <p>The topic's ARN.</p> 56 */ SetTopicArn(const Aws::String & value)57 inline void SetTopicArn(const Aws::String& value) { m_topicArnHasBeenSet = true; m_topicArn = value; } 58 59 /** 60 * <p>The topic's ARN.</p> 61 */ SetTopicArn(Aws::String && value)62 inline void SetTopicArn(Aws::String&& value) { m_topicArnHasBeenSet = true; m_topicArn = std::move(value); } 63 64 /** 65 * <p>The topic's ARN.</p> 66 */ SetTopicArn(const char * value)67 inline void SetTopicArn(const char* value) { m_topicArnHasBeenSet = true; m_topicArn.assign(value); } 68 69 /** 70 * <p>The topic's ARN.</p> 71 */ WithTopicArn(const Aws::String & value)72 inline Topic& WithTopicArn(const Aws::String& value) { SetTopicArn(value); return *this;} 73 74 /** 75 * <p>The topic's ARN.</p> 76 */ WithTopicArn(Aws::String && value)77 inline Topic& WithTopicArn(Aws::String&& value) { SetTopicArn(std::move(value)); return *this;} 78 79 /** 80 * <p>The topic's ARN.</p> 81 */ WithTopicArn(const char * value)82 inline Topic& WithTopicArn(const char* value) { SetTopicArn(value); return *this;} 83 84 private: 85 86 Aws::String m_topicArn; 87 bool m_topicArnHasBeenSet; 88 }; 89 90 } // namespace Model 91 } // namespace SNS 92 } // namespace Aws 93