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/mq/MQ_EXPORTS.h>
8 #include <aws/mq/MQRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSMap.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace MQ
16 {
17 namespace Model
18 {
19 
20   /**
21    * <p>A map of the key-value pairs for the resource tag.</p><p><h3>See Also:</h3>
22    * <a
23    * href="http://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/CreateTagsRequest">AWS
24    * API Reference</a></p>
25    */
26   class AWS_MQ_API CreateTagsRequest : public MQRequest
27   {
28   public:
29     CreateTagsRequest();
30 
31     // Service request name is the Operation name which will send this request out,
32     // each operation should has unique request name, so that we can get operation's name from this request.
33     // Note: this is not true for response, multiple operations may have the same response name,
34     // so we can not get operation's name from response.
GetServiceRequestName()35     inline virtual const char* GetServiceRequestName() const override { return "CreateTags"; }
36 
37     Aws::String SerializePayload() const override;
38 
39 
40     /**
41      * <p>The Amazon Resource Name (ARN) of the resource tag.</p>
42      */
GetResourceArn()43     inline const Aws::String& GetResourceArn() const{ return m_resourceArn; }
44 
45     /**
46      * <p>The Amazon Resource Name (ARN) of the resource tag.</p>
47      */
ResourceArnHasBeenSet()48     inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; }
49 
50     /**
51      * <p>The Amazon Resource Name (ARN) of the resource tag.</p>
52      */
SetResourceArn(const Aws::String & value)53     inline void SetResourceArn(const Aws::String& value) { m_resourceArnHasBeenSet = true; m_resourceArn = value; }
54 
55     /**
56      * <p>The Amazon Resource Name (ARN) of the resource tag.</p>
57      */
SetResourceArn(Aws::String && value)58     inline void SetResourceArn(Aws::String&& value) { m_resourceArnHasBeenSet = true; m_resourceArn = std::move(value); }
59 
60     /**
61      * <p>The Amazon Resource Name (ARN) of the resource tag.</p>
62      */
SetResourceArn(const char * value)63     inline void SetResourceArn(const char* value) { m_resourceArnHasBeenSet = true; m_resourceArn.assign(value); }
64 
65     /**
66      * <p>The Amazon Resource Name (ARN) of the resource tag.</p>
67      */
WithResourceArn(const Aws::String & value)68     inline CreateTagsRequest& WithResourceArn(const Aws::String& value) { SetResourceArn(value); return *this;}
69 
70     /**
71      * <p>The Amazon Resource Name (ARN) of the resource tag.</p>
72      */
WithResourceArn(Aws::String && value)73     inline CreateTagsRequest& WithResourceArn(Aws::String&& value) { SetResourceArn(std::move(value)); return *this;}
74 
75     /**
76      * <p>The Amazon Resource Name (ARN) of the resource tag.</p>
77      */
WithResourceArn(const char * value)78     inline CreateTagsRequest& WithResourceArn(const char* value) { SetResourceArn(value); return *this;}
79 
80 
81     /**
82      * <p>The key-value pair for the resource tag.</p>
83      */
GetTags()84     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
85 
86     /**
87      * <p>The key-value pair for the resource tag.</p>
88      */
TagsHasBeenSet()89     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
90 
91     /**
92      * <p>The key-value pair for the resource tag.</p>
93      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)94     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
95 
96     /**
97      * <p>The key-value pair for the resource tag.</p>
98      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)99     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
100 
101     /**
102      * <p>The key-value pair for the resource tag.</p>
103      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)104     inline CreateTagsRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
105 
106     /**
107      * <p>The key-value pair for the resource tag.</p>
108      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)109     inline CreateTagsRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
110 
111     /**
112      * <p>The key-value pair for the resource tag.</p>
113      */
AddTags(const Aws::String & key,const Aws::String & value)114     inline CreateTagsRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
115 
116     /**
117      * <p>The key-value pair for the resource tag.</p>
118      */
AddTags(Aws::String && key,const Aws::String & value)119     inline CreateTagsRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
120 
121     /**
122      * <p>The key-value pair for the resource tag.</p>
123      */
AddTags(const Aws::String & key,Aws::String && value)124     inline CreateTagsRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
125 
126     /**
127      * <p>The key-value pair for the resource tag.</p>
128      */
AddTags(Aws::String && key,Aws::String && value)129     inline CreateTagsRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
130 
131     /**
132      * <p>The key-value pair for the resource tag.</p>
133      */
AddTags(const char * key,Aws::String && value)134     inline CreateTagsRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
135 
136     /**
137      * <p>The key-value pair for the resource tag.</p>
138      */
AddTags(Aws::String && key,const char * value)139     inline CreateTagsRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
140 
141     /**
142      * <p>The key-value pair for the resource tag.</p>
143      */
AddTags(const char * key,const char * value)144     inline CreateTagsRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
145 
146   private:
147 
148     Aws::String m_resourceArn;
149     bool m_resourceArnHasBeenSet;
150 
151     Aws::Map<Aws::String, Aws::String> m_tags;
152     bool m_tagsHasBeenSet;
153   };
154 
155 } // namespace Model
156 } // namespace MQ
157 } // namespace Aws
158