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/macie2/Macie2_EXPORTS.h>
8 #include <aws/macie2/model/SearchResourcesSimpleCriterion.h>
9 #include <aws/macie2/model/SearchResourcesTagCriterion.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 Macie2
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Specifies a property- or tag-based filter condition for including or
29    * excluding Amazon Web Services resources from the query results.</p><p><h3>See
30    * Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/macie2-2020-01-01/SearchResourcesCriteria">AWS
32    * API Reference</a></p>
33    */
34   class AWS_MACIE2_API SearchResourcesCriteria
35   {
36   public:
37     SearchResourcesCriteria();
38     SearchResourcesCriteria(Aws::Utils::Json::JsonView jsonValue);
39     SearchResourcesCriteria& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>A property-based condition that defines a property, operator, and one or more
45      * values for including or excluding resources from the results.</p>
46      */
GetSimpleCriterion()47     inline const SearchResourcesSimpleCriterion& GetSimpleCriterion() const{ return m_simpleCriterion; }
48 
49     /**
50      * <p>A property-based condition that defines a property, operator, and one or more
51      * values for including or excluding resources from the results.</p>
52      */
SimpleCriterionHasBeenSet()53     inline bool SimpleCriterionHasBeenSet() const { return m_simpleCriterionHasBeenSet; }
54 
55     /**
56      * <p>A property-based condition that defines a property, operator, and one or more
57      * values for including or excluding resources from the results.</p>
58      */
SetSimpleCriterion(const SearchResourcesSimpleCriterion & value)59     inline void SetSimpleCriterion(const SearchResourcesSimpleCriterion& value) { m_simpleCriterionHasBeenSet = true; m_simpleCriterion = value; }
60 
61     /**
62      * <p>A property-based condition that defines a property, operator, and one or more
63      * values for including or excluding resources from the results.</p>
64      */
SetSimpleCriterion(SearchResourcesSimpleCriterion && value)65     inline void SetSimpleCriterion(SearchResourcesSimpleCriterion&& value) { m_simpleCriterionHasBeenSet = true; m_simpleCriterion = std::move(value); }
66 
67     /**
68      * <p>A property-based condition that defines a property, operator, and one or more
69      * values for including or excluding resources from the results.</p>
70      */
WithSimpleCriterion(const SearchResourcesSimpleCriterion & value)71     inline SearchResourcesCriteria& WithSimpleCriterion(const SearchResourcesSimpleCriterion& value) { SetSimpleCriterion(value); return *this;}
72 
73     /**
74      * <p>A property-based condition that defines a property, operator, and one or more
75      * values for including or excluding resources from the results.</p>
76      */
WithSimpleCriterion(SearchResourcesSimpleCriterion && value)77     inline SearchResourcesCriteria& WithSimpleCriterion(SearchResourcesSimpleCriterion&& value) { SetSimpleCriterion(std::move(value)); return *this;}
78 
79 
80     /**
81      * <p>A tag-based condition that defines an operator and tag keys, tag values, or
82      * tag key and value pairs for including or excluding resources from the
83      * results.</p>
84      */
GetTagCriterion()85     inline const SearchResourcesTagCriterion& GetTagCriterion() const{ return m_tagCriterion; }
86 
87     /**
88      * <p>A tag-based condition that defines an operator and tag keys, tag values, or
89      * tag key and value pairs for including or excluding resources from the
90      * results.</p>
91      */
TagCriterionHasBeenSet()92     inline bool TagCriterionHasBeenSet() const { return m_tagCriterionHasBeenSet; }
93 
94     /**
95      * <p>A tag-based condition that defines an operator and tag keys, tag values, or
96      * tag key and value pairs for including or excluding resources from the
97      * results.</p>
98      */
SetTagCriterion(const SearchResourcesTagCriterion & value)99     inline void SetTagCriterion(const SearchResourcesTagCriterion& value) { m_tagCriterionHasBeenSet = true; m_tagCriterion = value; }
100 
101     /**
102      * <p>A tag-based condition that defines an operator and tag keys, tag values, or
103      * tag key and value pairs for including or excluding resources from the
104      * results.</p>
105      */
SetTagCriterion(SearchResourcesTagCriterion && value)106     inline void SetTagCriterion(SearchResourcesTagCriterion&& value) { m_tagCriterionHasBeenSet = true; m_tagCriterion = std::move(value); }
107 
108     /**
109      * <p>A tag-based condition that defines an operator and tag keys, tag values, or
110      * tag key and value pairs for including or excluding resources from the
111      * results.</p>
112      */
WithTagCriterion(const SearchResourcesTagCriterion & value)113     inline SearchResourcesCriteria& WithTagCriterion(const SearchResourcesTagCriterion& value) { SetTagCriterion(value); return *this;}
114 
115     /**
116      * <p>A tag-based condition that defines an operator and tag keys, tag values, or
117      * tag key and value pairs for including or excluding resources from the
118      * results.</p>
119      */
WithTagCriterion(SearchResourcesTagCriterion && value)120     inline SearchResourcesCriteria& WithTagCriterion(SearchResourcesTagCriterion&& value) { SetTagCriterion(std::move(value)); return *this;}
121 
122   private:
123 
124     SearchResourcesSimpleCriterion m_simpleCriterion;
125     bool m_simpleCriterionHasBeenSet;
126 
127     SearchResourcesTagCriterion m_tagCriterion;
128     bool m_tagCriterionHasBeenSet;
129   };
130 
131 } // namespace Model
132 } // namespace Macie2
133 } // namespace Aws
134