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/quicksight/QuickSight_EXPORTS.h>
8 #include <aws/quicksight/model/FilterOperator.h>
9 #include <aws/quicksight/model/FolderFilterAttribute.h>
10 #include <aws/core/utils/memory/stl/AWSString.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 QuickSight
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Searches a folder by a filter.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/quicksight-2018-04-01/FolderSearchFilter">AWS
31    * API Reference</a></p>
32    */
33   class AWS_QUICKSIGHT_API FolderSearchFilter
34   {
35   public:
36     FolderSearchFilter();
37     FolderSearchFilter(Aws::Utils::Json::JsonView jsonValue);
38     FolderSearchFilter& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The comparison operator that you want to use as a filter. For example,
44      * <code>"Operator": "StringEquals"</code>.</p>
45      */
GetOperator()46     inline const FilterOperator& GetOperator() const{ return m_operator; }
47 
48     /**
49      * <p>The comparison operator that you want to use as a filter. For example,
50      * <code>"Operator": "StringEquals"</code>.</p>
51      */
OperatorHasBeenSet()52     inline bool OperatorHasBeenSet() const { return m_operatorHasBeenSet; }
53 
54     /**
55      * <p>The comparison operator that you want to use as a filter. For example,
56      * <code>"Operator": "StringEquals"</code>.</p>
57      */
SetOperator(const FilterOperator & value)58     inline void SetOperator(const FilterOperator& value) { m_operatorHasBeenSet = true; m_operator = value; }
59 
60     /**
61      * <p>The comparison operator that you want to use as a filter. For example,
62      * <code>"Operator": "StringEquals"</code>.</p>
63      */
SetOperator(FilterOperator && value)64     inline void SetOperator(FilterOperator&& value) { m_operatorHasBeenSet = true; m_operator = std::move(value); }
65 
66     /**
67      * <p>The comparison operator that you want to use as a filter. For example,
68      * <code>"Operator": "StringEquals"</code>.</p>
69      */
WithOperator(const FilterOperator & value)70     inline FolderSearchFilter& WithOperator(const FilterOperator& value) { SetOperator(value); return *this;}
71 
72     /**
73      * <p>The comparison operator that you want to use as a filter. For example,
74      * <code>"Operator": "StringEquals"</code>.</p>
75      */
WithOperator(FilterOperator && value)76     inline FolderSearchFilter& WithOperator(FilterOperator&& value) { SetOperator(std::move(value)); return *this;}
77 
78 
79     /**
80      * <p>The name of the value that you want to use as a filter. For example,
81      * <code>"Name": "PARENT_FOLDER_ARN"</code>.</p>
82      */
GetName()83     inline const FolderFilterAttribute& GetName() const{ return m_name; }
84 
85     /**
86      * <p>The name of the value that you want to use as a filter. For example,
87      * <code>"Name": "PARENT_FOLDER_ARN"</code>.</p>
88      */
NameHasBeenSet()89     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
90 
91     /**
92      * <p>The name of the value that you want to use as a filter. For example,
93      * <code>"Name": "PARENT_FOLDER_ARN"</code>.</p>
94      */
SetName(const FolderFilterAttribute & value)95     inline void SetName(const FolderFilterAttribute& value) { m_nameHasBeenSet = true; m_name = value; }
96 
97     /**
98      * <p>The name of the value that you want to use as a filter. For example,
99      * <code>"Name": "PARENT_FOLDER_ARN"</code>.</p>
100      */
SetName(FolderFilterAttribute && value)101     inline void SetName(FolderFilterAttribute&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
102 
103     /**
104      * <p>The name of the value that you want to use as a filter. For example,
105      * <code>"Name": "PARENT_FOLDER_ARN"</code>.</p>
106      */
WithName(const FolderFilterAttribute & value)107     inline FolderSearchFilter& WithName(const FolderFilterAttribute& value) { SetName(value); return *this;}
108 
109     /**
110      * <p>The name of the value that you want to use as a filter. For example,
111      * <code>"Name": "PARENT_FOLDER_ARN"</code>.</p>
112      */
WithName(FolderFilterAttribute && value)113     inline FolderSearchFilter& WithName(FolderFilterAttribute&& value) { SetName(std::move(value)); return *this;}
114 
115 
116     /**
117      * <p>The value of the named item (in this example,
118      * <code>PARENT_FOLDER_ARN</code>), that you want to use as a filter. For example,
119      * <code>"Value": "arn:aws:quicksight:us-east-1:1:folder/folderId"</code>.</p>
120      */
GetValue()121     inline const Aws::String& GetValue() const{ return m_value; }
122 
123     /**
124      * <p>The value of the named item (in this example,
125      * <code>PARENT_FOLDER_ARN</code>), that you want to use as a filter. For example,
126      * <code>"Value": "arn:aws:quicksight:us-east-1:1:folder/folderId"</code>.</p>
127      */
ValueHasBeenSet()128     inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; }
129 
130     /**
131      * <p>The value of the named item (in this example,
132      * <code>PARENT_FOLDER_ARN</code>), that you want to use as a filter. For example,
133      * <code>"Value": "arn:aws:quicksight:us-east-1:1:folder/folderId"</code>.</p>
134      */
SetValue(const Aws::String & value)135     inline void SetValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value = value; }
136 
137     /**
138      * <p>The value of the named item (in this example,
139      * <code>PARENT_FOLDER_ARN</code>), that you want to use as a filter. For example,
140      * <code>"Value": "arn:aws:quicksight:us-east-1:1:folder/folderId"</code>.</p>
141      */
SetValue(Aws::String && value)142     inline void SetValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value = std::move(value); }
143 
144     /**
145      * <p>The value of the named item (in this example,
146      * <code>PARENT_FOLDER_ARN</code>), that you want to use as a filter. For example,
147      * <code>"Value": "arn:aws:quicksight:us-east-1:1:folder/folderId"</code>.</p>
148      */
SetValue(const char * value)149     inline void SetValue(const char* value) { m_valueHasBeenSet = true; m_value.assign(value); }
150 
151     /**
152      * <p>The value of the named item (in this example,
153      * <code>PARENT_FOLDER_ARN</code>), that you want to use as a filter. For example,
154      * <code>"Value": "arn:aws:quicksight:us-east-1:1:folder/folderId"</code>.</p>
155      */
WithValue(const Aws::String & value)156     inline FolderSearchFilter& WithValue(const Aws::String& value) { SetValue(value); return *this;}
157 
158     /**
159      * <p>The value of the named item (in this example,
160      * <code>PARENT_FOLDER_ARN</code>), that you want to use as a filter. For example,
161      * <code>"Value": "arn:aws:quicksight:us-east-1:1:folder/folderId"</code>.</p>
162      */
WithValue(Aws::String && value)163     inline FolderSearchFilter& WithValue(Aws::String&& value) { SetValue(std::move(value)); return *this;}
164 
165     /**
166      * <p>The value of the named item (in this example,
167      * <code>PARENT_FOLDER_ARN</code>), that you want to use as a filter. For example,
168      * <code>"Value": "arn:aws:quicksight:us-east-1:1:folder/folderId"</code>.</p>
169      */
WithValue(const char * value)170     inline FolderSearchFilter& WithValue(const char* value) { SetValue(value); return *this;}
171 
172   private:
173 
174     FilterOperator m_operator;
175     bool m_operatorHasBeenSet;
176 
177     FolderFilterAttribute m_name;
178     bool m_nameHasBeenSet;
179 
180     Aws::String m_value;
181     bool m_valueHasBeenSet;
182   };
183 
184 } // namespace Model
185 } // namespace QuickSight
186 } // namespace Aws
187