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/iotevents/IoTEvents_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/iotevents/model/State.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 IoTEvents
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Information that defines how a detector operates.</p><p><h3>See Also:</h3>
30    * <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/DetectorModelDefinition">AWS
32    * API Reference</a></p>
33    */
34   class AWS_IOTEVENTS_API DetectorModelDefinition
35   {
36   public:
37     DetectorModelDefinition();
38     DetectorModelDefinition(Aws::Utils::Json::JsonView jsonValue);
39     DetectorModelDefinition& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>Information about the states of the detector.</p>
45      */
GetStates()46     inline const Aws::Vector<State>& GetStates() const{ return m_states; }
47 
48     /**
49      * <p>Information about the states of the detector.</p>
50      */
StatesHasBeenSet()51     inline bool StatesHasBeenSet() const { return m_statesHasBeenSet; }
52 
53     /**
54      * <p>Information about the states of the detector.</p>
55      */
SetStates(const Aws::Vector<State> & value)56     inline void SetStates(const Aws::Vector<State>& value) { m_statesHasBeenSet = true; m_states = value; }
57 
58     /**
59      * <p>Information about the states of the detector.</p>
60      */
SetStates(Aws::Vector<State> && value)61     inline void SetStates(Aws::Vector<State>&& value) { m_statesHasBeenSet = true; m_states = std::move(value); }
62 
63     /**
64      * <p>Information about the states of the detector.</p>
65      */
WithStates(const Aws::Vector<State> & value)66     inline DetectorModelDefinition& WithStates(const Aws::Vector<State>& value) { SetStates(value); return *this;}
67 
68     /**
69      * <p>Information about the states of the detector.</p>
70      */
WithStates(Aws::Vector<State> && value)71     inline DetectorModelDefinition& WithStates(Aws::Vector<State>&& value) { SetStates(std::move(value)); return *this;}
72 
73     /**
74      * <p>Information about the states of the detector.</p>
75      */
AddStates(const State & value)76     inline DetectorModelDefinition& AddStates(const State& value) { m_statesHasBeenSet = true; m_states.push_back(value); return *this; }
77 
78     /**
79      * <p>Information about the states of the detector.</p>
80      */
AddStates(State && value)81     inline DetectorModelDefinition& AddStates(State&& value) { m_statesHasBeenSet = true; m_states.push_back(std::move(value)); return *this; }
82 
83 
84     /**
85      * <p>The state that is entered at the creation of each detector (instance).</p>
86      */
GetInitialStateName()87     inline const Aws::String& GetInitialStateName() const{ return m_initialStateName; }
88 
89     /**
90      * <p>The state that is entered at the creation of each detector (instance).</p>
91      */
InitialStateNameHasBeenSet()92     inline bool InitialStateNameHasBeenSet() const { return m_initialStateNameHasBeenSet; }
93 
94     /**
95      * <p>The state that is entered at the creation of each detector (instance).</p>
96      */
SetInitialStateName(const Aws::String & value)97     inline void SetInitialStateName(const Aws::String& value) { m_initialStateNameHasBeenSet = true; m_initialStateName = value; }
98 
99     /**
100      * <p>The state that is entered at the creation of each detector (instance).</p>
101      */
SetInitialStateName(Aws::String && value)102     inline void SetInitialStateName(Aws::String&& value) { m_initialStateNameHasBeenSet = true; m_initialStateName = std::move(value); }
103 
104     /**
105      * <p>The state that is entered at the creation of each detector (instance).</p>
106      */
SetInitialStateName(const char * value)107     inline void SetInitialStateName(const char* value) { m_initialStateNameHasBeenSet = true; m_initialStateName.assign(value); }
108 
109     /**
110      * <p>The state that is entered at the creation of each detector (instance).</p>
111      */
WithInitialStateName(const Aws::String & value)112     inline DetectorModelDefinition& WithInitialStateName(const Aws::String& value) { SetInitialStateName(value); return *this;}
113 
114     /**
115      * <p>The state that is entered at the creation of each detector (instance).</p>
116      */
WithInitialStateName(Aws::String && value)117     inline DetectorModelDefinition& WithInitialStateName(Aws::String&& value) { SetInitialStateName(std::move(value)); return *this;}
118 
119     /**
120      * <p>The state that is entered at the creation of each detector (instance).</p>
121      */
WithInitialStateName(const char * value)122     inline DetectorModelDefinition& WithInitialStateName(const char* value) { SetInitialStateName(value); return *this;}
123 
124   private:
125 
126     Aws::Vector<State> m_states;
127     bool m_statesHasBeenSet;
128 
129     Aws::String m_initialStateName;
130     bool m_initialStateNameHasBeenSet;
131   };
132 
133 } // namespace Model
134 } // namespace IoTEvents
135 } // namespace Aws
136