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/InsightImpactGraphEdge.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>Information about an application that processed requests, users that made
30    * requests, or downstream services, resources, and applications that an
31    * application used. </p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/InsightImpactGraphService">AWS
33    * API Reference</a></p>
34    */
35   class AWS_XRAY_API InsightImpactGraphService
36   {
37   public:
38     InsightImpactGraphService();
39     InsightImpactGraphService(Aws::Utils::Json::JsonView jsonValue);
40     InsightImpactGraphService& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>Identifier for the service. Unique within the service map.</p>
46      */
GetReferenceId()47     inline int GetReferenceId() const{ return m_referenceId; }
48 
49     /**
50      * <p>Identifier for the service. Unique within the service map.</p>
51      */
ReferenceIdHasBeenSet()52     inline bool ReferenceIdHasBeenSet() const { return m_referenceIdHasBeenSet; }
53 
54     /**
55      * <p>Identifier for the service. Unique within the service map.</p>
56      */
SetReferenceId(int value)57     inline void SetReferenceId(int value) { m_referenceIdHasBeenSet = true; m_referenceId = value; }
58 
59     /**
60      * <p>Identifier for the service. Unique within the service map.</p>
61      */
WithReferenceId(int value)62     inline InsightImpactGraphService& WithReferenceId(int value) { SetReferenceId(value); return *this;}
63 
64 
65     /**
66      * <p>Identifier for the service. Unique within the service map.</p> <ul> <li>
67      * <p>Amazon Web Services Resource - The type of an Amazon Web Services resource.
68      * For example, AWS::EC2::Instance for an application running on Amazon EC2 or
69      * AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.
70      * </p> </li> <li> <p>Amazon Web Services Service - The type of an Amazon Web
71      * Services service. For example, AWS::DynamoDB for downstream calls to Amazon
72      * DynamoDB that didn't target a specific table. </p> </li> <li> <p>Amazon Web
73      * Services Service - The type of an Amazon Web Services service. For example,
74      * AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a
75      * specific table. </p> </li> <li> <p>remote - A downstream service of
76      * indeterminate type.</p> </li> </ul>
77      */
GetType()78     inline const Aws::String& GetType() const{ return m_type; }
79 
80     /**
81      * <p>Identifier for the service. Unique within the service map.</p> <ul> <li>
82      * <p>Amazon Web Services Resource - The type of an Amazon Web Services resource.
83      * For example, AWS::EC2::Instance for an application running on Amazon EC2 or
84      * AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.
85      * </p> </li> <li> <p>Amazon Web Services Service - The type of an Amazon Web
86      * Services service. For example, AWS::DynamoDB for downstream calls to Amazon
87      * DynamoDB that didn't target a specific table. </p> </li> <li> <p>Amazon Web
88      * Services Service - The type of an Amazon Web Services service. For example,
89      * AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a
90      * specific table. </p> </li> <li> <p>remote - A downstream service of
91      * indeterminate type.</p> </li> </ul>
92      */
TypeHasBeenSet()93     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
94 
95     /**
96      * <p>Identifier for the service. Unique within the service map.</p> <ul> <li>
97      * <p>Amazon Web Services Resource - The type of an Amazon Web Services resource.
98      * For example, AWS::EC2::Instance for an application running on Amazon EC2 or
99      * AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.
100      * </p> </li> <li> <p>Amazon Web Services Service - The type of an Amazon Web
101      * Services service. For example, AWS::DynamoDB for downstream calls to Amazon
102      * DynamoDB that didn't target a specific table. </p> </li> <li> <p>Amazon Web
103      * Services Service - The type of an Amazon Web Services service. For example,
104      * AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a
105      * specific table. </p> </li> <li> <p>remote - A downstream service of
106      * indeterminate type.</p> </li> </ul>
107      */
SetType(const Aws::String & value)108     inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; }
109 
110     /**
111      * <p>Identifier for the service. Unique within the service map.</p> <ul> <li>
112      * <p>Amazon Web Services Resource - The type of an Amazon Web Services resource.
113      * For example, AWS::EC2::Instance for an application running on Amazon EC2 or
114      * AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.
115      * </p> </li> <li> <p>Amazon Web Services Service - The type of an Amazon Web
116      * Services service. For example, AWS::DynamoDB for downstream calls to Amazon
117      * DynamoDB that didn't target a specific table. </p> </li> <li> <p>Amazon Web
118      * Services Service - The type of an Amazon Web Services service. For example,
119      * AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a
120      * specific table. </p> </li> <li> <p>remote - A downstream service of
121      * indeterminate type.</p> </li> </ul>
122      */
SetType(Aws::String && value)123     inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
124 
125     /**
126      * <p>Identifier for the service. Unique within the service map.</p> <ul> <li>
127      * <p>Amazon Web Services Resource - The type of an Amazon Web Services resource.
128      * For example, AWS::EC2::Instance for an application running on Amazon EC2 or
129      * AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.
130      * </p> </li> <li> <p>Amazon Web Services Service - The type of an Amazon Web
131      * Services service. For example, AWS::DynamoDB for downstream calls to Amazon
132      * DynamoDB that didn't target a specific table. </p> </li> <li> <p>Amazon Web
133      * Services Service - The type of an Amazon Web Services service. For example,
134      * AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a
135      * specific table. </p> </li> <li> <p>remote - A downstream service of
136      * indeterminate type.</p> </li> </ul>
137      */
SetType(const char * value)138     inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); }
139 
140     /**
141      * <p>Identifier for the service. Unique within the service map.</p> <ul> <li>
142      * <p>Amazon Web Services Resource - The type of an Amazon Web Services resource.
143      * For example, AWS::EC2::Instance for an application running on Amazon EC2 or
144      * AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.
145      * </p> </li> <li> <p>Amazon Web Services Service - The type of an Amazon Web
146      * Services service. For example, AWS::DynamoDB for downstream calls to Amazon
147      * DynamoDB that didn't target a specific table. </p> </li> <li> <p>Amazon Web
148      * Services Service - The type of an Amazon Web Services service. For example,
149      * AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a
150      * specific table. </p> </li> <li> <p>remote - A downstream service of
151      * indeterminate type.</p> </li> </ul>
152      */
WithType(const Aws::String & value)153     inline InsightImpactGraphService& WithType(const Aws::String& value) { SetType(value); return *this;}
154 
155     /**
156      * <p>Identifier for the service. Unique within the service map.</p> <ul> <li>
157      * <p>Amazon Web Services Resource - The type of an Amazon Web Services resource.
158      * For example, AWS::EC2::Instance for an application running on Amazon EC2 or
159      * AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.
160      * </p> </li> <li> <p>Amazon Web Services Service - The type of an Amazon Web
161      * Services service. For example, AWS::DynamoDB for downstream calls to Amazon
162      * DynamoDB that didn't target a specific table. </p> </li> <li> <p>Amazon Web
163      * Services Service - The type of an Amazon Web Services service. For example,
164      * AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a
165      * specific table. </p> </li> <li> <p>remote - A downstream service of
166      * indeterminate type.</p> </li> </ul>
167      */
WithType(Aws::String && value)168     inline InsightImpactGraphService& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;}
169 
170     /**
171      * <p>Identifier for the service. Unique within the service map.</p> <ul> <li>
172      * <p>Amazon Web Services Resource - The type of an Amazon Web Services resource.
173      * For example, AWS::EC2::Instance for an application running on Amazon EC2 or
174      * AWS::DynamoDB::Table for an Amazon DynamoDB table that the application used.
175      * </p> </li> <li> <p>Amazon Web Services Service - The type of an Amazon Web
176      * Services service. For example, AWS::DynamoDB for downstream calls to Amazon
177      * DynamoDB that didn't target a specific table. </p> </li> <li> <p>Amazon Web
178      * Services Service - The type of an Amazon Web Services service. For example,
179      * AWS::DynamoDB for downstream calls to Amazon DynamoDB that didn't target a
180      * specific table. </p> </li> <li> <p>remote - A downstream service of
181      * indeterminate type.</p> </li> </ul>
182      */
WithType(const char * value)183     inline InsightImpactGraphService& WithType(const char* value) { SetType(value); return *this;}
184 
185 
186     /**
187      * <p>The canonical name of the service.</p>
188      */
GetName()189     inline const Aws::String& GetName() const{ return m_name; }
190 
191     /**
192      * <p>The canonical name of the service.</p>
193      */
NameHasBeenSet()194     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
195 
196     /**
197      * <p>The canonical name of the service.</p>
198      */
SetName(const Aws::String & value)199     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
200 
201     /**
202      * <p>The canonical name of the service.</p>
203      */
SetName(Aws::String && value)204     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
205 
206     /**
207      * <p>The canonical name of the service.</p>
208      */
SetName(const char * value)209     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
210 
211     /**
212      * <p>The canonical name of the service.</p>
213      */
WithName(const Aws::String & value)214     inline InsightImpactGraphService& WithName(const Aws::String& value) { SetName(value); return *this;}
215 
216     /**
217      * <p>The canonical name of the service.</p>
218      */
WithName(Aws::String && value)219     inline InsightImpactGraphService& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
220 
221     /**
222      * <p>The canonical name of the service.</p>
223      */
WithName(const char * value)224     inline InsightImpactGraphService& WithName(const char* value) { SetName(value); return *this;}
225 
226 
227     /**
228      * <p>A list of names for the service, including the canonical name.</p>
229      */
GetNames()230     inline const Aws::Vector<Aws::String>& GetNames() const{ return m_names; }
231 
232     /**
233      * <p>A list of names for the service, including the canonical name.</p>
234      */
NamesHasBeenSet()235     inline bool NamesHasBeenSet() const { return m_namesHasBeenSet; }
236 
237     /**
238      * <p>A list of names for the service, including the canonical name.</p>
239      */
SetNames(const Aws::Vector<Aws::String> & value)240     inline void SetNames(const Aws::Vector<Aws::String>& value) { m_namesHasBeenSet = true; m_names = value; }
241 
242     /**
243      * <p>A list of names for the service, including the canonical name.</p>
244      */
SetNames(Aws::Vector<Aws::String> && value)245     inline void SetNames(Aws::Vector<Aws::String>&& value) { m_namesHasBeenSet = true; m_names = std::move(value); }
246 
247     /**
248      * <p>A list of names for the service, including the canonical name.</p>
249      */
WithNames(const Aws::Vector<Aws::String> & value)250     inline InsightImpactGraphService& WithNames(const Aws::Vector<Aws::String>& value) { SetNames(value); return *this;}
251 
252     /**
253      * <p>A list of names for the service, including the canonical name.</p>
254      */
WithNames(Aws::Vector<Aws::String> && value)255     inline InsightImpactGraphService& WithNames(Aws::Vector<Aws::String>&& value) { SetNames(std::move(value)); return *this;}
256 
257     /**
258      * <p>A list of names for the service, including the canonical name.</p>
259      */
AddNames(const Aws::String & value)260     inline InsightImpactGraphService& AddNames(const Aws::String& value) { m_namesHasBeenSet = true; m_names.push_back(value); return *this; }
261 
262     /**
263      * <p>A list of names for the service, including the canonical name.</p>
264      */
AddNames(Aws::String && value)265     inline InsightImpactGraphService& AddNames(Aws::String&& value) { m_namesHasBeenSet = true; m_names.push_back(std::move(value)); return *this; }
266 
267     /**
268      * <p>A list of names for the service, including the canonical name.</p>
269      */
AddNames(const char * value)270     inline InsightImpactGraphService& AddNames(const char* value) { m_namesHasBeenSet = true; m_names.push_back(value); return *this; }
271 
272 
273     /**
274      * <p>Identifier of the Amazon Web Services account in which the service runs.</p>
275      */
GetAccountId()276     inline const Aws::String& GetAccountId() const{ return m_accountId; }
277 
278     /**
279      * <p>Identifier of the Amazon Web Services account in which the service runs.</p>
280      */
AccountIdHasBeenSet()281     inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
282 
283     /**
284      * <p>Identifier of the Amazon Web Services account in which the service runs.</p>
285      */
SetAccountId(const Aws::String & value)286     inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; }
287 
288     /**
289      * <p>Identifier of the Amazon Web Services account in which the service runs.</p>
290      */
SetAccountId(Aws::String && value)291     inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); }
292 
293     /**
294      * <p>Identifier of the Amazon Web Services account in which the service runs.</p>
295      */
SetAccountId(const char * value)296     inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); }
297 
298     /**
299      * <p>Identifier of the Amazon Web Services account in which the service runs.</p>
300      */
WithAccountId(const Aws::String & value)301     inline InsightImpactGraphService& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;}
302 
303     /**
304      * <p>Identifier of the Amazon Web Services account in which the service runs.</p>
305      */
WithAccountId(Aws::String && value)306     inline InsightImpactGraphService& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;}
307 
308     /**
309      * <p>Identifier of the Amazon Web Services account in which the service runs.</p>
310      */
WithAccountId(const char * value)311     inline InsightImpactGraphService& WithAccountId(const char* value) { SetAccountId(value); return *this;}
312 
313 
314     /**
315      * <p>Connections to downstream services.</p>
316      */
GetEdges()317     inline const Aws::Vector<InsightImpactGraphEdge>& GetEdges() const{ return m_edges; }
318 
319     /**
320      * <p>Connections to downstream services.</p>
321      */
EdgesHasBeenSet()322     inline bool EdgesHasBeenSet() const { return m_edgesHasBeenSet; }
323 
324     /**
325      * <p>Connections to downstream services.</p>
326      */
SetEdges(const Aws::Vector<InsightImpactGraphEdge> & value)327     inline void SetEdges(const Aws::Vector<InsightImpactGraphEdge>& value) { m_edgesHasBeenSet = true; m_edges = value; }
328 
329     /**
330      * <p>Connections to downstream services.</p>
331      */
SetEdges(Aws::Vector<InsightImpactGraphEdge> && value)332     inline void SetEdges(Aws::Vector<InsightImpactGraphEdge>&& value) { m_edgesHasBeenSet = true; m_edges = std::move(value); }
333 
334     /**
335      * <p>Connections to downstream services.</p>
336      */
WithEdges(const Aws::Vector<InsightImpactGraphEdge> & value)337     inline InsightImpactGraphService& WithEdges(const Aws::Vector<InsightImpactGraphEdge>& value) { SetEdges(value); return *this;}
338 
339     /**
340      * <p>Connections to downstream services.</p>
341      */
WithEdges(Aws::Vector<InsightImpactGraphEdge> && value)342     inline InsightImpactGraphService& WithEdges(Aws::Vector<InsightImpactGraphEdge>&& value) { SetEdges(std::move(value)); return *this;}
343 
344     /**
345      * <p>Connections to downstream services.</p>
346      */
AddEdges(const InsightImpactGraphEdge & value)347     inline InsightImpactGraphService& AddEdges(const InsightImpactGraphEdge& value) { m_edgesHasBeenSet = true; m_edges.push_back(value); return *this; }
348 
349     /**
350      * <p>Connections to downstream services.</p>
351      */
AddEdges(InsightImpactGraphEdge && value)352     inline InsightImpactGraphService& AddEdges(InsightImpactGraphEdge&& value) { m_edgesHasBeenSet = true; m_edges.push_back(std::move(value)); return *this; }
353 
354   private:
355 
356     int m_referenceId;
357     bool m_referenceIdHasBeenSet;
358 
359     Aws::String m_type;
360     bool m_typeHasBeenSet;
361 
362     Aws::String m_name;
363     bool m_nameHasBeenSet;
364 
365     Aws::Vector<Aws::String> m_names;
366     bool m_namesHasBeenSet;
367 
368     Aws::String m_accountId;
369     bool m_accountIdHasBeenSet;
370 
371     Aws::Vector<InsightImpactGraphEdge> m_edges;
372     bool m_edgesHasBeenSet;
373   };
374 
375 } // namespace Model
376 } // namespace XRay
377 } // namespace Aws
378