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