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/elasticloadbalancingv2/ElasticLoadBalancingv2_EXPORTS.h>
8 #include <aws/elasticloadbalancingv2/ElasticLoadBalancingv2Request.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace ElasticLoadBalancingv2
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_ELASTICLOADBALANCINGV2_API RemoveTagsRequest : public ElasticLoadBalancingv2Request
23   {
24   public:
25     RemoveTagsRequest();
26 
27     // Service request name is the Operation name which will send this request out,
28     // each operation should has unique request name, so that we can get operation's name from this request.
29     // Note: this is not true for response, multiple operations may have the same response name,
30     // so we can not get operation's name from response.
GetServiceRequestName()31     inline virtual const char* GetServiceRequestName() const override { return "RemoveTags"; }
32 
33     Aws::String SerializePayload() const override;
34 
35   protected:
36     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
37 
38   public:
39 
40     /**
41      * <p>The Amazon Resource Name (ARN) of the resource.</p>
42      */
GetResourceArns()43     inline const Aws::Vector<Aws::String>& GetResourceArns() const{ return m_resourceArns; }
44 
45     /**
46      * <p>The Amazon Resource Name (ARN) of the resource.</p>
47      */
ResourceArnsHasBeenSet()48     inline bool ResourceArnsHasBeenSet() const { return m_resourceArnsHasBeenSet; }
49 
50     /**
51      * <p>The Amazon Resource Name (ARN) of the resource.</p>
52      */
SetResourceArns(const Aws::Vector<Aws::String> & value)53     inline void SetResourceArns(const Aws::Vector<Aws::String>& value) { m_resourceArnsHasBeenSet = true; m_resourceArns = value; }
54 
55     /**
56      * <p>The Amazon Resource Name (ARN) of the resource.</p>
57      */
SetResourceArns(Aws::Vector<Aws::String> && value)58     inline void SetResourceArns(Aws::Vector<Aws::String>&& value) { m_resourceArnsHasBeenSet = true; m_resourceArns = std::move(value); }
59 
60     /**
61      * <p>The Amazon Resource Name (ARN) of the resource.</p>
62      */
WithResourceArns(const Aws::Vector<Aws::String> & value)63     inline RemoveTagsRequest& WithResourceArns(const Aws::Vector<Aws::String>& value) { SetResourceArns(value); return *this;}
64 
65     /**
66      * <p>The Amazon Resource Name (ARN) of the resource.</p>
67      */
WithResourceArns(Aws::Vector<Aws::String> && value)68     inline RemoveTagsRequest& WithResourceArns(Aws::Vector<Aws::String>&& value) { SetResourceArns(std::move(value)); return *this;}
69 
70     /**
71      * <p>The Amazon Resource Name (ARN) of the resource.</p>
72      */
AddResourceArns(const Aws::String & value)73     inline RemoveTagsRequest& AddResourceArns(const Aws::String& value) { m_resourceArnsHasBeenSet = true; m_resourceArns.push_back(value); return *this; }
74 
75     /**
76      * <p>The Amazon Resource Name (ARN) of the resource.</p>
77      */
AddResourceArns(Aws::String && value)78     inline RemoveTagsRequest& AddResourceArns(Aws::String&& value) { m_resourceArnsHasBeenSet = true; m_resourceArns.push_back(std::move(value)); return *this; }
79 
80     /**
81      * <p>The Amazon Resource Name (ARN) of the resource.</p>
82      */
AddResourceArns(const char * value)83     inline RemoveTagsRequest& AddResourceArns(const char* value) { m_resourceArnsHasBeenSet = true; m_resourceArns.push_back(value); return *this; }
84 
85 
86     /**
87      * <p>The tag keys for the tags to remove.</p>
88      */
GetTagKeys()89     inline const Aws::Vector<Aws::String>& GetTagKeys() const{ return m_tagKeys; }
90 
91     /**
92      * <p>The tag keys for the tags to remove.</p>
93      */
TagKeysHasBeenSet()94     inline bool TagKeysHasBeenSet() const { return m_tagKeysHasBeenSet; }
95 
96     /**
97      * <p>The tag keys for the tags to remove.</p>
98      */
SetTagKeys(const Aws::Vector<Aws::String> & value)99     inline void SetTagKeys(const Aws::Vector<Aws::String>& value) { m_tagKeysHasBeenSet = true; m_tagKeys = value; }
100 
101     /**
102      * <p>The tag keys for the tags to remove.</p>
103      */
SetTagKeys(Aws::Vector<Aws::String> && value)104     inline void SetTagKeys(Aws::Vector<Aws::String>&& value) { m_tagKeysHasBeenSet = true; m_tagKeys = std::move(value); }
105 
106     /**
107      * <p>The tag keys for the tags to remove.</p>
108      */
WithTagKeys(const Aws::Vector<Aws::String> & value)109     inline RemoveTagsRequest& WithTagKeys(const Aws::Vector<Aws::String>& value) { SetTagKeys(value); return *this;}
110 
111     /**
112      * <p>The tag keys for the tags to remove.</p>
113      */
WithTagKeys(Aws::Vector<Aws::String> && value)114     inline RemoveTagsRequest& WithTagKeys(Aws::Vector<Aws::String>&& value) { SetTagKeys(std::move(value)); return *this;}
115 
116     /**
117      * <p>The tag keys for the tags to remove.</p>
118      */
AddTagKeys(const Aws::String & value)119     inline RemoveTagsRequest& AddTagKeys(const Aws::String& value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(value); return *this; }
120 
121     /**
122      * <p>The tag keys for the tags to remove.</p>
123      */
AddTagKeys(Aws::String && value)124     inline RemoveTagsRequest& AddTagKeys(Aws::String&& value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(std::move(value)); return *this; }
125 
126     /**
127      * <p>The tag keys for the tags to remove.</p>
128      */
AddTagKeys(const char * value)129     inline RemoveTagsRequest& AddTagKeys(const char* value) { m_tagKeysHasBeenSet = true; m_tagKeys.push_back(value); return *this; }
130 
131   private:
132 
133     Aws::Vector<Aws::String> m_resourceArns;
134     bool m_resourceArnsHasBeenSet;
135 
136     Aws::Vector<Aws::String> m_tagKeys;
137     bool m_tagKeysHasBeenSet;
138   };
139 
140 } // namespace Model
141 } // namespace ElasticLoadBalancingv2
142 } // namespace Aws
143