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/xray/XRay_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/xray/model/ResponseTimeRootCauseEntity.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 XRay
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>A collection of fields identifying the service in a response time
30    * warning.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/ResponseTimeRootCauseService">AWS
32    * API Reference</a></p>
33    */
34   class AWS_XRAY_API ResponseTimeRootCauseService
35   {
36   public:
37     ResponseTimeRootCauseService();
38     ResponseTimeRootCauseService(Aws::Utils::Json::JsonView jsonValue);
39     ResponseTimeRootCauseService& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The service name.</p>
45      */
GetName()46     inline const Aws::String& GetName() const{ return m_name; }
47 
48     /**
49      * <p>The service name.</p>
50      */
NameHasBeenSet()51     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
52 
53     /**
54      * <p>The service name.</p>
55      */
SetName(const Aws::String & value)56     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
57 
58     /**
59      * <p>The service name.</p>
60      */
SetName(Aws::String && value)61     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
62 
63     /**
64      * <p>The service name.</p>
65      */
SetName(const char * value)66     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
67 
68     /**
69      * <p>The service name.</p>
70      */
WithName(const Aws::String & value)71     inline ResponseTimeRootCauseService& WithName(const Aws::String& value) { SetName(value); return *this;}
72 
73     /**
74      * <p>The service name.</p>
75      */
WithName(Aws::String && value)76     inline ResponseTimeRootCauseService& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
77 
78     /**
79      * <p>The service name.</p>
80      */
WithName(const char * value)81     inline ResponseTimeRootCauseService& WithName(const char* value) { SetName(value); return *this;}
82 
83 
84     /**
85      * <p>A collection of associated service names.</p>
86      */
GetNames()87     inline const Aws::Vector<Aws::String>& GetNames() const{ return m_names; }
88 
89     /**
90      * <p>A collection of associated service names.</p>
91      */
NamesHasBeenSet()92     inline bool NamesHasBeenSet() const { return m_namesHasBeenSet; }
93 
94     /**
95      * <p>A collection of associated service names.</p>
96      */
SetNames(const Aws::Vector<Aws::String> & value)97     inline void SetNames(const Aws::Vector<Aws::String>& value) { m_namesHasBeenSet = true; m_names = value; }
98 
99     /**
100      * <p>A collection of associated service names.</p>
101      */
SetNames(Aws::Vector<Aws::String> && value)102     inline void SetNames(Aws::Vector<Aws::String>&& value) { m_namesHasBeenSet = true; m_names = std::move(value); }
103 
104     /**
105      * <p>A collection of associated service names.</p>
106      */
WithNames(const Aws::Vector<Aws::String> & value)107     inline ResponseTimeRootCauseService& WithNames(const Aws::Vector<Aws::String>& value) { SetNames(value); return *this;}
108 
109     /**
110      * <p>A collection of associated service names.</p>
111      */
WithNames(Aws::Vector<Aws::String> && value)112     inline ResponseTimeRootCauseService& WithNames(Aws::Vector<Aws::String>&& value) { SetNames(std::move(value)); return *this;}
113 
114     /**
115      * <p>A collection of associated service names.</p>
116      */
AddNames(const Aws::String & value)117     inline ResponseTimeRootCauseService& AddNames(const Aws::String& value) { m_namesHasBeenSet = true; m_names.push_back(value); return *this; }
118 
119     /**
120      * <p>A collection of associated service names.</p>
121      */
AddNames(Aws::String && value)122     inline ResponseTimeRootCauseService& AddNames(Aws::String&& value) { m_namesHasBeenSet = true; m_names.push_back(std::move(value)); return *this; }
123 
124     /**
125      * <p>A collection of associated service names.</p>
126      */
AddNames(const char * value)127     inline ResponseTimeRootCauseService& AddNames(const char* value) { m_namesHasBeenSet = true; m_names.push_back(value); return *this; }
128 
129 
130     /**
131      * <p>The type associated to the service.</p>
132      */
GetType()133     inline const Aws::String& GetType() const{ return m_type; }
134 
135     /**
136      * <p>The type associated to the service.</p>
137      */
TypeHasBeenSet()138     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
139 
140     /**
141      * <p>The type associated to the service.</p>
142      */
SetType(const Aws::String & value)143     inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; }
144 
145     /**
146      * <p>The type associated to the service.</p>
147      */
SetType(Aws::String && value)148     inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
149 
150     /**
151      * <p>The type associated to the service.</p>
152      */
SetType(const char * value)153     inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); }
154 
155     /**
156      * <p>The type associated to the service.</p>
157      */
WithType(const Aws::String & value)158     inline ResponseTimeRootCauseService& WithType(const Aws::String& value) { SetType(value); return *this;}
159 
160     /**
161      * <p>The type associated to the service.</p>
162      */
WithType(Aws::String && value)163     inline ResponseTimeRootCauseService& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;}
164 
165     /**
166      * <p>The type associated to the service.</p>
167      */
WithType(const char * value)168     inline ResponseTimeRootCauseService& WithType(const char* value) { SetType(value); return *this;}
169 
170 
171     /**
172      * <p>The account ID associated to the service.</p>
173      */
GetAccountId()174     inline const Aws::String& GetAccountId() const{ return m_accountId; }
175 
176     /**
177      * <p>The account ID associated to the service.</p>
178      */
AccountIdHasBeenSet()179     inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
180 
181     /**
182      * <p>The account ID associated to the service.</p>
183      */
SetAccountId(const Aws::String & value)184     inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; }
185 
186     /**
187      * <p>The account ID associated to the service.</p>
188      */
SetAccountId(Aws::String && value)189     inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); }
190 
191     /**
192      * <p>The account ID associated to the service.</p>
193      */
SetAccountId(const char * value)194     inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); }
195 
196     /**
197      * <p>The account ID associated to the service.</p>
198      */
WithAccountId(const Aws::String & value)199     inline ResponseTimeRootCauseService& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;}
200 
201     /**
202      * <p>The account ID associated to the service.</p>
203      */
WithAccountId(Aws::String && value)204     inline ResponseTimeRootCauseService& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;}
205 
206     /**
207      * <p>The account ID associated to the service.</p>
208      */
WithAccountId(const char * value)209     inline ResponseTimeRootCauseService& WithAccountId(const char* value) { SetAccountId(value); return *this;}
210 
211 
212     /**
213      * <p>The path of root cause entities found on the service. </p>
214      */
GetEntityPath()215     inline const Aws::Vector<ResponseTimeRootCauseEntity>& GetEntityPath() const{ return m_entityPath; }
216 
217     /**
218      * <p>The path of root cause entities found on the service. </p>
219      */
EntityPathHasBeenSet()220     inline bool EntityPathHasBeenSet() const { return m_entityPathHasBeenSet; }
221 
222     /**
223      * <p>The path of root cause entities found on the service. </p>
224      */
SetEntityPath(const Aws::Vector<ResponseTimeRootCauseEntity> & value)225     inline void SetEntityPath(const Aws::Vector<ResponseTimeRootCauseEntity>& value) { m_entityPathHasBeenSet = true; m_entityPath = value; }
226 
227     /**
228      * <p>The path of root cause entities found on the service. </p>
229      */
SetEntityPath(Aws::Vector<ResponseTimeRootCauseEntity> && value)230     inline void SetEntityPath(Aws::Vector<ResponseTimeRootCauseEntity>&& value) { m_entityPathHasBeenSet = true; m_entityPath = std::move(value); }
231 
232     /**
233      * <p>The path of root cause entities found on the service. </p>
234      */
WithEntityPath(const Aws::Vector<ResponseTimeRootCauseEntity> & value)235     inline ResponseTimeRootCauseService& WithEntityPath(const Aws::Vector<ResponseTimeRootCauseEntity>& value) { SetEntityPath(value); return *this;}
236 
237     /**
238      * <p>The path of root cause entities found on the service. </p>
239      */
WithEntityPath(Aws::Vector<ResponseTimeRootCauseEntity> && value)240     inline ResponseTimeRootCauseService& WithEntityPath(Aws::Vector<ResponseTimeRootCauseEntity>&& value) { SetEntityPath(std::move(value)); return *this;}
241 
242     /**
243      * <p>The path of root cause entities found on the service. </p>
244      */
AddEntityPath(const ResponseTimeRootCauseEntity & value)245     inline ResponseTimeRootCauseService& AddEntityPath(const ResponseTimeRootCauseEntity& value) { m_entityPathHasBeenSet = true; m_entityPath.push_back(value); return *this; }
246 
247     /**
248      * <p>The path of root cause entities found on the service. </p>
249      */
AddEntityPath(ResponseTimeRootCauseEntity && value)250     inline ResponseTimeRootCauseService& AddEntityPath(ResponseTimeRootCauseEntity&& value) { m_entityPathHasBeenSet = true; m_entityPath.push_back(std::move(value)); return *this; }
251 
252 
253     /**
254      * <p>A Boolean value indicating if the service is inferred from the trace.</p>
255      */
GetInferred()256     inline bool GetInferred() const{ return m_inferred; }
257 
258     /**
259      * <p>A Boolean value indicating if the service is inferred from the trace.</p>
260      */
InferredHasBeenSet()261     inline bool InferredHasBeenSet() const { return m_inferredHasBeenSet; }
262 
263     /**
264      * <p>A Boolean value indicating if the service is inferred from the trace.</p>
265      */
SetInferred(bool value)266     inline void SetInferred(bool value) { m_inferredHasBeenSet = true; m_inferred = value; }
267 
268     /**
269      * <p>A Boolean value indicating if the service is inferred from the trace.</p>
270      */
WithInferred(bool value)271     inline ResponseTimeRootCauseService& WithInferred(bool value) { SetInferred(value); return *this;}
272 
273   private:
274 
275     Aws::String m_name;
276     bool m_nameHasBeenSet;
277 
278     Aws::Vector<Aws::String> m_names;
279     bool m_namesHasBeenSet;
280 
281     Aws::String m_type;
282     bool m_typeHasBeenSet;
283 
284     Aws::String m_accountId;
285     bool m_accountIdHasBeenSet;
286 
287     Aws::Vector<ResponseTimeRootCauseEntity> m_entityPath;
288     bool m_entityPathHasBeenSet;
289 
290     bool m_inferred;
291     bool m_inferredHasBeenSet;
292   };
293 
294 } // namespace Model
295 } // namespace XRay
296 } // namespace Aws
297