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/redshift/Redshift_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/redshift/model/ScheduledActionFilterName.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/core/utils/memory/stl/AWSString.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Xml
19 {
20   class XmlNode;
21 } // namespace Xml
22 } // namespace Utils
23 namespace Redshift
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>A set of elements to filter the returned scheduled actions. </p><p><h3>See
30    * Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ScheduledActionFilter">AWS
32    * API Reference</a></p>
33    */
34   class AWS_REDSHIFT_API ScheduledActionFilter
35   {
36   public:
37     ScheduledActionFilter();
38     ScheduledActionFilter(const Aws::Utils::Xml::XmlNode& xmlNode);
39     ScheduledActionFilter& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
40 
41     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
42     void OutputToStream(Aws::OStream& oStream, const char* location) const;
43 
44 
45     /**
46      * <p>The type of element to filter. </p>
47      */
GetName()48     inline const ScheduledActionFilterName& GetName() const{ return m_name; }
49 
50     /**
51      * <p>The type of element to filter. </p>
52      */
NameHasBeenSet()53     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
54 
55     /**
56      * <p>The type of element to filter. </p>
57      */
SetName(const ScheduledActionFilterName & value)58     inline void SetName(const ScheduledActionFilterName& value) { m_nameHasBeenSet = true; m_name = value; }
59 
60     /**
61      * <p>The type of element to filter. </p>
62      */
SetName(ScheduledActionFilterName && value)63     inline void SetName(ScheduledActionFilterName&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
64 
65     /**
66      * <p>The type of element to filter. </p>
67      */
WithName(const ScheduledActionFilterName & value)68     inline ScheduledActionFilter& WithName(const ScheduledActionFilterName& value) { SetName(value); return *this;}
69 
70     /**
71      * <p>The type of element to filter. </p>
72      */
WithName(ScheduledActionFilterName && value)73     inline ScheduledActionFilter& WithName(ScheduledActionFilterName&& value) { SetName(std::move(value)); return *this;}
74 
75 
76     /**
77      * <p>List of values. Compare if the value (of type defined by <code>Name</code>)
78      * equals an item in the list of scheduled actions. </p>
79      */
GetValues()80     inline const Aws::Vector<Aws::String>& GetValues() const{ return m_values; }
81 
82     /**
83      * <p>List of values. Compare if the value (of type defined by <code>Name</code>)
84      * equals an item in the list of scheduled actions. </p>
85      */
ValuesHasBeenSet()86     inline bool ValuesHasBeenSet() const { return m_valuesHasBeenSet; }
87 
88     /**
89      * <p>List of values. Compare if the value (of type defined by <code>Name</code>)
90      * equals an item in the list of scheduled actions. </p>
91      */
SetValues(const Aws::Vector<Aws::String> & value)92     inline void SetValues(const Aws::Vector<Aws::String>& value) { m_valuesHasBeenSet = true; m_values = value; }
93 
94     /**
95      * <p>List of values. Compare if the value (of type defined by <code>Name</code>)
96      * equals an item in the list of scheduled actions. </p>
97      */
SetValues(Aws::Vector<Aws::String> && value)98     inline void SetValues(Aws::Vector<Aws::String>&& value) { m_valuesHasBeenSet = true; m_values = std::move(value); }
99 
100     /**
101      * <p>List of values. Compare if the value (of type defined by <code>Name</code>)
102      * equals an item in the list of scheduled actions. </p>
103      */
WithValues(const Aws::Vector<Aws::String> & value)104     inline ScheduledActionFilter& WithValues(const Aws::Vector<Aws::String>& value) { SetValues(value); return *this;}
105 
106     /**
107      * <p>List of values. Compare if the value (of type defined by <code>Name</code>)
108      * equals an item in the list of scheduled actions. </p>
109      */
WithValues(Aws::Vector<Aws::String> && value)110     inline ScheduledActionFilter& WithValues(Aws::Vector<Aws::String>&& value) { SetValues(std::move(value)); return *this;}
111 
112     /**
113      * <p>List of values. Compare if the value (of type defined by <code>Name</code>)
114      * equals an item in the list of scheduled actions. </p>
115      */
AddValues(const Aws::String & value)116     inline ScheduledActionFilter& AddValues(const Aws::String& value) { m_valuesHasBeenSet = true; m_values.push_back(value); return *this; }
117 
118     /**
119      * <p>List of values. Compare if the value (of type defined by <code>Name</code>)
120      * equals an item in the list of scheduled actions. </p>
121      */
AddValues(Aws::String && value)122     inline ScheduledActionFilter& AddValues(Aws::String&& value) { m_valuesHasBeenSet = true; m_values.push_back(std::move(value)); return *this; }
123 
124     /**
125      * <p>List of values. Compare if the value (of type defined by <code>Name</code>)
126      * equals an item in the list of scheduled actions. </p>
127      */
AddValues(const char * value)128     inline ScheduledActionFilter& AddValues(const char* value) { m_valuesHasBeenSet = true; m_values.push_back(value); return *this; }
129 
130   private:
131 
132     ScheduledActionFilterName m_name;
133     bool m_nameHasBeenSet;
134 
135     Aws::Vector<Aws::String> m_values;
136     bool m_valuesHasBeenSet;
137   };
138 
139 } // namespace Model
140 } // namespace Redshift
141 } // namespace Aws
142