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/xray/model/AnnotationValue.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/xray/model/ServiceId.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 a segment annotation.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/ValueWithServiceIds">AWS
31    * API Reference</a></p>
32    */
33   class AWS_XRAY_API ValueWithServiceIds
34   {
35   public:
36     ValueWithServiceIds();
37     ValueWithServiceIds(Aws::Utils::Json::JsonView jsonValue);
38     ValueWithServiceIds& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>Values of the annotation.</p>
44      */
GetAnnotationValue()45     inline const AnnotationValue& GetAnnotationValue() const{ return m_annotationValue; }
46 
47     /**
48      * <p>Values of the annotation.</p>
49      */
AnnotationValueHasBeenSet()50     inline bool AnnotationValueHasBeenSet() const { return m_annotationValueHasBeenSet; }
51 
52     /**
53      * <p>Values of the annotation.</p>
54      */
SetAnnotationValue(const AnnotationValue & value)55     inline void SetAnnotationValue(const AnnotationValue& value) { m_annotationValueHasBeenSet = true; m_annotationValue = value; }
56 
57     /**
58      * <p>Values of the annotation.</p>
59      */
SetAnnotationValue(AnnotationValue && value)60     inline void SetAnnotationValue(AnnotationValue&& value) { m_annotationValueHasBeenSet = true; m_annotationValue = std::move(value); }
61 
62     /**
63      * <p>Values of the annotation.</p>
64      */
WithAnnotationValue(const AnnotationValue & value)65     inline ValueWithServiceIds& WithAnnotationValue(const AnnotationValue& value) { SetAnnotationValue(value); return *this;}
66 
67     /**
68      * <p>Values of the annotation.</p>
69      */
WithAnnotationValue(AnnotationValue && value)70     inline ValueWithServiceIds& WithAnnotationValue(AnnotationValue&& value) { SetAnnotationValue(std::move(value)); return *this;}
71 
72 
73     /**
74      * <p>Services to which the annotation applies.</p>
75      */
GetServiceIds()76     inline const Aws::Vector<ServiceId>& GetServiceIds() const{ return m_serviceIds; }
77 
78     /**
79      * <p>Services to which the annotation applies.</p>
80      */
ServiceIdsHasBeenSet()81     inline bool ServiceIdsHasBeenSet() const { return m_serviceIdsHasBeenSet; }
82 
83     /**
84      * <p>Services to which the annotation applies.</p>
85      */
SetServiceIds(const Aws::Vector<ServiceId> & value)86     inline void SetServiceIds(const Aws::Vector<ServiceId>& value) { m_serviceIdsHasBeenSet = true; m_serviceIds = value; }
87 
88     /**
89      * <p>Services to which the annotation applies.</p>
90      */
SetServiceIds(Aws::Vector<ServiceId> && value)91     inline void SetServiceIds(Aws::Vector<ServiceId>&& value) { m_serviceIdsHasBeenSet = true; m_serviceIds = std::move(value); }
92 
93     /**
94      * <p>Services to which the annotation applies.</p>
95      */
WithServiceIds(const Aws::Vector<ServiceId> & value)96     inline ValueWithServiceIds& WithServiceIds(const Aws::Vector<ServiceId>& value) { SetServiceIds(value); return *this;}
97 
98     /**
99      * <p>Services to which the annotation applies.</p>
100      */
WithServiceIds(Aws::Vector<ServiceId> && value)101     inline ValueWithServiceIds& WithServiceIds(Aws::Vector<ServiceId>&& value) { SetServiceIds(std::move(value)); return *this;}
102 
103     /**
104      * <p>Services to which the annotation applies.</p>
105      */
AddServiceIds(const ServiceId & value)106     inline ValueWithServiceIds& AddServiceIds(const ServiceId& value) { m_serviceIdsHasBeenSet = true; m_serviceIds.push_back(value); return *this; }
107 
108     /**
109      * <p>Services to which the annotation applies.</p>
110      */
AddServiceIds(ServiceId && value)111     inline ValueWithServiceIds& AddServiceIds(ServiceId&& value) { m_serviceIdsHasBeenSet = true; m_serviceIds.push_back(std::move(value)); return *this; }
112 
113   private:
114 
115     AnnotationValue m_annotationValue;
116     bool m_annotationValueHasBeenSet;
117 
118     Aws::Vector<ServiceId> m_serviceIds;
119     bool m_serviceIdsHasBeenSet;
120   };
121 
122 } // namespace Model
123 } // namespace XRay
124 } // namespace Aws
125