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/pinpoint/Pinpoint_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace Pinpoint
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Provides information about the type and the names of attributes that were
29    * removed from all the endpoints that are associated with an
30    * application.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/AttributesResource">AWS
32    * API Reference</a></p>
33    */
34   class AWS_PINPOINT_API AttributesResource
35   {
36   public:
37     AttributesResource();
38     AttributesResource(Aws::Utils::Json::JsonView jsonValue);
39     AttributesResource& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The unique identifier for the application.</p>
45      */
GetApplicationId()46     inline const Aws::String& GetApplicationId() const{ return m_applicationId; }
47 
48     /**
49      * <p>The unique identifier for the application.</p>
50      */
ApplicationIdHasBeenSet()51     inline bool ApplicationIdHasBeenSet() const { return m_applicationIdHasBeenSet; }
52 
53     /**
54      * <p>The unique identifier for the application.</p>
55      */
SetApplicationId(const Aws::String & value)56     inline void SetApplicationId(const Aws::String& value) { m_applicationIdHasBeenSet = true; m_applicationId = value; }
57 
58     /**
59      * <p>The unique identifier for the application.</p>
60      */
SetApplicationId(Aws::String && value)61     inline void SetApplicationId(Aws::String&& value) { m_applicationIdHasBeenSet = true; m_applicationId = std::move(value); }
62 
63     /**
64      * <p>The unique identifier for the application.</p>
65      */
SetApplicationId(const char * value)66     inline void SetApplicationId(const char* value) { m_applicationIdHasBeenSet = true; m_applicationId.assign(value); }
67 
68     /**
69      * <p>The unique identifier for the application.</p>
70      */
WithApplicationId(const Aws::String & value)71     inline AttributesResource& WithApplicationId(const Aws::String& value) { SetApplicationId(value); return *this;}
72 
73     /**
74      * <p>The unique identifier for the application.</p>
75      */
WithApplicationId(Aws::String && value)76     inline AttributesResource& WithApplicationId(Aws::String&& value) { SetApplicationId(std::move(value)); return *this;}
77 
78     /**
79      * <p>The unique identifier for the application.</p>
80      */
WithApplicationId(const char * value)81     inline AttributesResource& WithApplicationId(const char* value) { SetApplicationId(value); return *this;}
82 
83 
84     /**
85      * <p>The type of attribute or attributes that were removed from the endpoints.
86      * Valid values are:</p> <ul><li><p>endpoint-custom-attributes - Custom attributes
87      * that describe endpoints.</p></li> <li><p>endpoint-metric-attributes - Custom
88      * metrics that your app reports to Amazon Pinpoint for endpoints.</p></li>
89      * <li><p>endpoint-user-attributes - Custom attributes that describe
90      * users.</p></li></ul>
91      */
GetAttributeType()92     inline const Aws::String& GetAttributeType() const{ return m_attributeType; }
93 
94     /**
95      * <p>The type of attribute or attributes that were removed from the endpoints.
96      * Valid values are:</p> <ul><li><p>endpoint-custom-attributes - Custom attributes
97      * that describe endpoints.</p></li> <li><p>endpoint-metric-attributes - Custom
98      * metrics that your app reports to Amazon Pinpoint for endpoints.</p></li>
99      * <li><p>endpoint-user-attributes - Custom attributes that describe
100      * users.</p></li></ul>
101      */
AttributeTypeHasBeenSet()102     inline bool AttributeTypeHasBeenSet() const { return m_attributeTypeHasBeenSet; }
103 
104     /**
105      * <p>The type of attribute or attributes that were removed from the endpoints.
106      * Valid values are:</p> <ul><li><p>endpoint-custom-attributes - Custom attributes
107      * that describe endpoints.</p></li> <li><p>endpoint-metric-attributes - Custom
108      * metrics that your app reports to Amazon Pinpoint for endpoints.</p></li>
109      * <li><p>endpoint-user-attributes - Custom attributes that describe
110      * users.</p></li></ul>
111      */
SetAttributeType(const Aws::String & value)112     inline void SetAttributeType(const Aws::String& value) { m_attributeTypeHasBeenSet = true; m_attributeType = value; }
113 
114     /**
115      * <p>The type of attribute or attributes that were removed from the endpoints.
116      * Valid values are:</p> <ul><li><p>endpoint-custom-attributes - Custom attributes
117      * that describe endpoints.</p></li> <li><p>endpoint-metric-attributes - Custom
118      * metrics that your app reports to Amazon Pinpoint for endpoints.</p></li>
119      * <li><p>endpoint-user-attributes - Custom attributes that describe
120      * users.</p></li></ul>
121      */
SetAttributeType(Aws::String && value)122     inline void SetAttributeType(Aws::String&& value) { m_attributeTypeHasBeenSet = true; m_attributeType = std::move(value); }
123 
124     /**
125      * <p>The type of attribute or attributes that were removed from the endpoints.
126      * Valid values are:</p> <ul><li><p>endpoint-custom-attributes - Custom attributes
127      * that describe endpoints.</p></li> <li><p>endpoint-metric-attributes - Custom
128      * metrics that your app reports to Amazon Pinpoint for endpoints.</p></li>
129      * <li><p>endpoint-user-attributes - Custom attributes that describe
130      * users.</p></li></ul>
131      */
SetAttributeType(const char * value)132     inline void SetAttributeType(const char* value) { m_attributeTypeHasBeenSet = true; m_attributeType.assign(value); }
133 
134     /**
135      * <p>The type of attribute or attributes that were removed from the endpoints.
136      * Valid values are:</p> <ul><li><p>endpoint-custom-attributes - Custom attributes
137      * that describe endpoints.</p></li> <li><p>endpoint-metric-attributes - Custom
138      * metrics that your app reports to Amazon Pinpoint for endpoints.</p></li>
139      * <li><p>endpoint-user-attributes - Custom attributes that describe
140      * users.</p></li></ul>
141      */
WithAttributeType(const Aws::String & value)142     inline AttributesResource& WithAttributeType(const Aws::String& value) { SetAttributeType(value); return *this;}
143 
144     /**
145      * <p>The type of attribute or attributes that were removed from the endpoints.
146      * Valid values are:</p> <ul><li><p>endpoint-custom-attributes - Custom attributes
147      * that describe endpoints.</p></li> <li><p>endpoint-metric-attributes - Custom
148      * metrics that your app reports to Amazon Pinpoint for endpoints.</p></li>
149      * <li><p>endpoint-user-attributes - Custom attributes that describe
150      * users.</p></li></ul>
151      */
WithAttributeType(Aws::String && value)152     inline AttributesResource& WithAttributeType(Aws::String&& value) { SetAttributeType(std::move(value)); return *this;}
153 
154     /**
155      * <p>The type of attribute or attributes that were removed from the endpoints.
156      * Valid values are:</p> <ul><li><p>endpoint-custom-attributes - Custom attributes
157      * that describe endpoints.</p></li> <li><p>endpoint-metric-attributes - Custom
158      * metrics that your app reports to Amazon Pinpoint for endpoints.</p></li>
159      * <li><p>endpoint-user-attributes - Custom attributes that describe
160      * users.</p></li></ul>
161      */
WithAttributeType(const char * value)162     inline AttributesResource& WithAttributeType(const char* value) { SetAttributeType(value); return *this;}
163 
164 
165     /**
166      * <p>An array that specifies the names of the attributes that were removed from
167      * the endpoints.</p>
168      */
GetAttributes()169     inline const Aws::Vector<Aws::String>& GetAttributes() const{ return m_attributes; }
170 
171     /**
172      * <p>An array that specifies the names of the attributes that were removed from
173      * the endpoints.</p>
174      */
AttributesHasBeenSet()175     inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; }
176 
177     /**
178      * <p>An array that specifies the names of the attributes that were removed from
179      * the endpoints.</p>
180      */
SetAttributes(const Aws::Vector<Aws::String> & value)181     inline void SetAttributes(const Aws::Vector<Aws::String>& value) { m_attributesHasBeenSet = true; m_attributes = value; }
182 
183     /**
184      * <p>An array that specifies the names of the attributes that were removed from
185      * the endpoints.</p>
186      */
SetAttributes(Aws::Vector<Aws::String> && value)187     inline void SetAttributes(Aws::Vector<Aws::String>&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); }
188 
189     /**
190      * <p>An array that specifies the names of the attributes that were removed from
191      * the endpoints.</p>
192      */
WithAttributes(const Aws::Vector<Aws::String> & value)193     inline AttributesResource& WithAttributes(const Aws::Vector<Aws::String>& value) { SetAttributes(value); return *this;}
194 
195     /**
196      * <p>An array that specifies the names of the attributes that were removed from
197      * the endpoints.</p>
198      */
WithAttributes(Aws::Vector<Aws::String> && value)199     inline AttributesResource& WithAttributes(Aws::Vector<Aws::String>&& value) { SetAttributes(std::move(value)); return *this;}
200 
201     /**
202      * <p>An array that specifies the names of the attributes that were removed from
203      * the endpoints.</p>
204      */
AddAttributes(const Aws::String & value)205     inline AttributesResource& AddAttributes(const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.push_back(value); return *this; }
206 
207     /**
208      * <p>An array that specifies the names of the attributes that were removed from
209      * the endpoints.</p>
210      */
AddAttributes(Aws::String && value)211     inline AttributesResource& AddAttributes(Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.push_back(std::move(value)); return *this; }
212 
213     /**
214      * <p>An array that specifies the names of the attributes that were removed from
215      * the endpoints.</p>
216      */
AddAttributes(const char * value)217     inline AttributesResource& AddAttributes(const char* value) { m_attributesHasBeenSet = true; m_attributes.push_back(value); return *this; }
218 
219   private:
220 
221     Aws::String m_applicationId;
222     bool m_applicationIdHasBeenSet;
223 
224     Aws::String m_attributeType;
225     bool m_attributeTypeHasBeenSet;
226 
227     Aws::Vector<Aws::String> m_attributes;
228     bool m_attributesHasBeenSet;
229   };
230 
231 } // namespace Model
232 } // namespace Pinpoint
233 } // namespace Aws
234