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/ListJobsSortAttributeName.h>
9 #include <aws/macie2/model/OrderBy.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 criteria for sorting the results of a request for information about
29    * classification jobs.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/macie2-2020-01-01/ListJobsSortCriteria">AWS
31    * API Reference</a></p>
32    */
33   class AWS_MACIE2_API ListJobsSortCriteria
34   {
35   public:
36     ListJobsSortCriteria();
37     ListJobsSortCriteria(Aws::Utils::Json::JsonView jsonValue);
38     ListJobsSortCriteria& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The property to sort the results by.</p>
44      */
GetAttributeName()45     inline const ListJobsSortAttributeName& GetAttributeName() const{ return m_attributeName; }
46 
47     /**
48      * <p>The property to sort the results by.</p>
49      */
AttributeNameHasBeenSet()50     inline bool AttributeNameHasBeenSet() const { return m_attributeNameHasBeenSet; }
51 
52     /**
53      * <p>The property to sort the results by.</p>
54      */
SetAttributeName(const ListJobsSortAttributeName & value)55     inline void SetAttributeName(const ListJobsSortAttributeName& value) { m_attributeNameHasBeenSet = true; m_attributeName = value; }
56 
57     /**
58      * <p>The property to sort the results by.</p>
59      */
SetAttributeName(ListJobsSortAttributeName && value)60     inline void SetAttributeName(ListJobsSortAttributeName&& value) { m_attributeNameHasBeenSet = true; m_attributeName = std::move(value); }
61 
62     /**
63      * <p>The property to sort the results by.</p>
64      */
WithAttributeName(const ListJobsSortAttributeName & value)65     inline ListJobsSortCriteria& WithAttributeName(const ListJobsSortAttributeName& value) { SetAttributeName(value); return *this;}
66 
67     /**
68      * <p>The property to sort the results by.</p>
69      */
WithAttributeName(ListJobsSortAttributeName && value)70     inline ListJobsSortCriteria& WithAttributeName(ListJobsSortAttributeName&& value) { SetAttributeName(std::move(value)); return *this;}
71 
72 
73     /**
74      * <p>The sort order to apply to the results, based on the value for the property
75      * specified by the attributeName property. Valid values are: ASC, sort the results
76      * in ascending order; and, DESC, sort the results in descending order.</p>
77      */
GetOrderBy()78     inline const OrderBy& GetOrderBy() const{ return m_orderBy; }
79 
80     /**
81      * <p>The sort order to apply to the results, based on the value for the property
82      * specified by the attributeName property. Valid values are: ASC, sort the results
83      * in ascending order; and, DESC, sort the results in descending order.</p>
84      */
OrderByHasBeenSet()85     inline bool OrderByHasBeenSet() const { return m_orderByHasBeenSet; }
86 
87     /**
88      * <p>The sort order to apply to the results, based on the value for the property
89      * specified by the attributeName property. Valid values are: ASC, sort the results
90      * in ascending order; and, DESC, sort the results in descending order.</p>
91      */
SetOrderBy(const OrderBy & value)92     inline void SetOrderBy(const OrderBy& value) { m_orderByHasBeenSet = true; m_orderBy = value; }
93 
94     /**
95      * <p>The sort order to apply to the results, based on the value for the property
96      * specified by the attributeName property. Valid values are: ASC, sort the results
97      * in ascending order; and, DESC, sort the results in descending order.</p>
98      */
SetOrderBy(OrderBy && value)99     inline void SetOrderBy(OrderBy&& value) { m_orderByHasBeenSet = true; m_orderBy = std::move(value); }
100 
101     /**
102      * <p>The sort order to apply to the results, based on the value for the property
103      * specified by the attributeName property. Valid values are: ASC, sort the results
104      * in ascending order; and, DESC, sort the results in descending order.</p>
105      */
WithOrderBy(const OrderBy & value)106     inline ListJobsSortCriteria& WithOrderBy(const OrderBy& value) { SetOrderBy(value); return *this;}
107 
108     /**
109      * <p>The sort order to apply to the results, based on the value for the property
110      * specified by the attributeName property. Valid values are: ASC, sort the results
111      * in ascending order; and, DESC, sort the results in descending order.</p>
112      */
WithOrderBy(OrderBy && value)113     inline ListJobsSortCriteria& WithOrderBy(OrderBy&& value) { SetOrderBy(std::move(value)); return *this;}
114 
115   private:
116 
117     ListJobsSortAttributeName m_attributeName;
118     bool m_attributeNameHasBeenSet;
119 
120     OrderBy m_orderBy;
121     bool m_orderByHasBeenSet;
122   };
123 
124 } // namespace Model
125 } // namespace Macie2
126 } // namespace Aws
127