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/fms/FMS_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace FMS
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>The reference rule that partially matches the <code>ViolationTarget</code>
29    * rule and violation reason.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PartialMatch">AWS
31    * API Reference</a></p>
32    */
33   class AWS_FMS_API PartialMatch
34   {
35   public:
36     PartialMatch();
37     PartialMatch(Aws::Utils::Json::JsonView jsonValue);
38     PartialMatch& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The reference rule from the primary security group of the Firewall Manager
44      * policy.</p>
45      */
GetReference()46     inline const Aws::String& GetReference() const{ return m_reference; }
47 
48     /**
49      * <p>The reference rule from the primary security group of the Firewall Manager
50      * policy.</p>
51      */
ReferenceHasBeenSet()52     inline bool ReferenceHasBeenSet() const { return m_referenceHasBeenSet; }
53 
54     /**
55      * <p>The reference rule from the primary security group of the Firewall Manager
56      * policy.</p>
57      */
SetReference(const Aws::String & value)58     inline void SetReference(const Aws::String& value) { m_referenceHasBeenSet = true; m_reference = value; }
59 
60     /**
61      * <p>The reference rule from the primary security group of the Firewall Manager
62      * policy.</p>
63      */
SetReference(Aws::String && value)64     inline void SetReference(Aws::String&& value) { m_referenceHasBeenSet = true; m_reference = std::move(value); }
65 
66     /**
67      * <p>The reference rule from the primary security group of the Firewall Manager
68      * policy.</p>
69      */
SetReference(const char * value)70     inline void SetReference(const char* value) { m_referenceHasBeenSet = true; m_reference.assign(value); }
71 
72     /**
73      * <p>The reference rule from the primary security group of the Firewall Manager
74      * policy.</p>
75      */
WithReference(const Aws::String & value)76     inline PartialMatch& WithReference(const Aws::String& value) { SetReference(value); return *this;}
77 
78     /**
79      * <p>The reference rule from the primary security group of the Firewall Manager
80      * policy.</p>
81      */
WithReference(Aws::String && value)82     inline PartialMatch& WithReference(Aws::String&& value) { SetReference(std::move(value)); return *this;}
83 
84     /**
85      * <p>The reference rule from the primary security group of the Firewall Manager
86      * policy.</p>
87      */
WithReference(const char * value)88     inline PartialMatch& WithReference(const char* value) { SetReference(value); return *this;}
89 
90 
91     /**
92      * <p>The violation reason.</p>
93      */
GetTargetViolationReasons()94     inline const Aws::Vector<Aws::String>& GetTargetViolationReasons() const{ return m_targetViolationReasons; }
95 
96     /**
97      * <p>The violation reason.</p>
98      */
TargetViolationReasonsHasBeenSet()99     inline bool TargetViolationReasonsHasBeenSet() const { return m_targetViolationReasonsHasBeenSet; }
100 
101     /**
102      * <p>The violation reason.</p>
103      */
SetTargetViolationReasons(const Aws::Vector<Aws::String> & value)104     inline void SetTargetViolationReasons(const Aws::Vector<Aws::String>& value) { m_targetViolationReasonsHasBeenSet = true; m_targetViolationReasons = value; }
105 
106     /**
107      * <p>The violation reason.</p>
108      */
SetTargetViolationReasons(Aws::Vector<Aws::String> && value)109     inline void SetTargetViolationReasons(Aws::Vector<Aws::String>&& value) { m_targetViolationReasonsHasBeenSet = true; m_targetViolationReasons = std::move(value); }
110 
111     /**
112      * <p>The violation reason.</p>
113      */
WithTargetViolationReasons(const Aws::Vector<Aws::String> & value)114     inline PartialMatch& WithTargetViolationReasons(const Aws::Vector<Aws::String>& value) { SetTargetViolationReasons(value); return *this;}
115 
116     /**
117      * <p>The violation reason.</p>
118      */
WithTargetViolationReasons(Aws::Vector<Aws::String> && value)119     inline PartialMatch& WithTargetViolationReasons(Aws::Vector<Aws::String>&& value) { SetTargetViolationReasons(std::move(value)); return *this;}
120 
121     /**
122      * <p>The violation reason.</p>
123      */
AddTargetViolationReasons(const Aws::String & value)124     inline PartialMatch& AddTargetViolationReasons(const Aws::String& value) { m_targetViolationReasonsHasBeenSet = true; m_targetViolationReasons.push_back(value); return *this; }
125 
126     /**
127      * <p>The violation reason.</p>
128      */
AddTargetViolationReasons(Aws::String && value)129     inline PartialMatch& AddTargetViolationReasons(Aws::String&& value) { m_targetViolationReasonsHasBeenSet = true; m_targetViolationReasons.push_back(std::move(value)); return *this; }
130 
131     /**
132      * <p>The violation reason.</p>
133      */
AddTargetViolationReasons(const char * value)134     inline PartialMatch& AddTargetViolationReasons(const char* value) { m_targetViolationReasonsHasBeenSet = true; m_targetViolationReasons.push_back(value); return *this; }
135 
136   private:
137 
138     Aws::String m_reference;
139     bool m_referenceHasBeenSet;
140 
141     Aws::Vector<Aws::String> m_targetViolationReasons;
142     bool m_targetViolationReasonsHasBeenSet;
143   };
144 
145 } // namespace Model
146 } // namespace FMS
147 } // namespace Aws
148