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/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/pinpoint/model/SegmentResponse.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace Pinpoint
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Provides information about all the segments 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/SegmentsResponse">AWS
32    * API Reference</a></p>
33    */
34   class AWS_PINPOINT_API SegmentsResponse
35   {
36   public:
37     SegmentsResponse();
38     SegmentsResponse(Aws::Utils::Json::JsonView jsonValue);
39     SegmentsResponse& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>An array of responses, one for each segment that's associated with the
45      * application (Segments resource) or each version of a segment that's associated
46      * with the application (Segment Versions resource).</p>
47      */
GetItem()48     inline const Aws::Vector<SegmentResponse>& GetItem() const{ return m_item; }
49 
50     /**
51      * <p>An array of responses, one for each segment that's associated with the
52      * application (Segments resource) or each version of a segment that's associated
53      * with the application (Segment Versions resource).</p>
54      */
ItemHasBeenSet()55     inline bool ItemHasBeenSet() const { return m_itemHasBeenSet; }
56 
57     /**
58      * <p>An array of responses, one for each segment that's associated with the
59      * application (Segments resource) or each version of a segment that's associated
60      * with the application (Segment Versions resource).</p>
61      */
SetItem(const Aws::Vector<SegmentResponse> & value)62     inline void SetItem(const Aws::Vector<SegmentResponse>& value) { m_itemHasBeenSet = true; m_item = value; }
63 
64     /**
65      * <p>An array of responses, one for each segment that's associated with the
66      * application (Segments resource) or each version of a segment that's associated
67      * with the application (Segment Versions resource).</p>
68      */
SetItem(Aws::Vector<SegmentResponse> && value)69     inline void SetItem(Aws::Vector<SegmentResponse>&& value) { m_itemHasBeenSet = true; m_item = std::move(value); }
70 
71     /**
72      * <p>An array of responses, one for each segment that's associated with the
73      * application (Segments resource) or each version of a segment that's associated
74      * with the application (Segment Versions resource).</p>
75      */
WithItem(const Aws::Vector<SegmentResponse> & value)76     inline SegmentsResponse& WithItem(const Aws::Vector<SegmentResponse>& value) { SetItem(value); return *this;}
77 
78     /**
79      * <p>An array of responses, one for each segment that's associated with the
80      * application (Segments resource) or each version of a segment that's associated
81      * with the application (Segment Versions resource).</p>
82      */
WithItem(Aws::Vector<SegmentResponse> && value)83     inline SegmentsResponse& WithItem(Aws::Vector<SegmentResponse>&& value) { SetItem(std::move(value)); return *this;}
84 
85     /**
86      * <p>An array of responses, one for each segment that's associated with the
87      * application (Segments resource) or each version of a segment that's associated
88      * with the application (Segment Versions resource).</p>
89      */
AddItem(const SegmentResponse & value)90     inline SegmentsResponse& AddItem(const SegmentResponse& value) { m_itemHasBeenSet = true; m_item.push_back(value); return *this; }
91 
92     /**
93      * <p>An array of responses, one for each segment that's associated with the
94      * application (Segments resource) or each version of a segment that's associated
95      * with the application (Segment Versions resource).</p>
96      */
AddItem(SegmentResponse && value)97     inline SegmentsResponse& AddItem(SegmentResponse&& value) { m_itemHasBeenSet = true; m_item.push_back(std::move(value)); return *this; }
98 
99 
100     /**
101      * <p>The string to use in a subsequent request to get the next page of results in
102      * a paginated response. This value is null if there are no additional pages.</p>
103      */
GetNextToken()104     inline const Aws::String& GetNextToken() const{ return m_nextToken; }
105 
106     /**
107      * <p>The string to use in a subsequent request to get the next page of results in
108      * a paginated response. This value is null if there are no additional pages.</p>
109      */
NextTokenHasBeenSet()110     inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; }
111 
112     /**
113      * <p>The string to use in a subsequent request to get the next page of results in
114      * a paginated response. This value is null if there are no additional pages.</p>
115      */
SetNextToken(const Aws::String & value)116     inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; }
117 
118     /**
119      * <p>The string to use in a subsequent request to get the next page of results in
120      * a paginated response. This value is null if there are no additional pages.</p>
121      */
SetNextToken(Aws::String && value)122     inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); }
123 
124     /**
125      * <p>The string to use in a subsequent request to get the next page of results in
126      * a paginated response. This value is null if there are no additional pages.</p>
127      */
SetNextToken(const char * value)128     inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); }
129 
130     /**
131      * <p>The string to use in a subsequent request to get the next page of results in
132      * a paginated response. This value is null if there are no additional pages.</p>
133      */
WithNextToken(const Aws::String & value)134     inline SegmentsResponse& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;}
135 
136     /**
137      * <p>The string to use in a subsequent request to get the next page of results in
138      * a paginated response. This value is null if there are no additional pages.</p>
139      */
WithNextToken(Aws::String && value)140     inline SegmentsResponse& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;}
141 
142     /**
143      * <p>The string to use in a subsequent request to get the next page of results in
144      * a paginated response. This value is null if there are no additional pages.</p>
145      */
WithNextToken(const char * value)146     inline SegmentsResponse& WithNextToken(const char* value) { SetNextToken(value); return *this;}
147 
148   private:
149 
150     Aws::Vector<SegmentResponse> m_item;
151     bool m_itemHasBeenSet;
152 
153     Aws::String m_nextToken;
154     bool m_nextTokenHasBeenSet;
155   };
156 
157 } // namespace Model
158 } // namespace Pinpoint
159 } // namespace Aws
160