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/databrew/GlueDataBrew_EXPORTS.h>
8 #include <aws/databrew/model/StatisticsConfiguration.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/databrew/model/ColumnSelector.h>
11 #include <aws/databrew/model/ColumnStatisticsConfiguration.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace GlueDataBrew
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Configuration for profile jobs. Configuration can be used to select columns,
31    * do evaluations, and override default parameters of evaluations. When
32    * configuration is undefined, the profile job will apply default settings to all
33    * supported columns. </p><p><h3>See Also:</h3>   <a
34    * href="http://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ProfileConfiguration">AWS
35    * API Reference</a></p>
36    */
37   class AWS_GLUEDATABREW_API ProfileConfiguration
38   {
39   public:
40     ProfileConfiguration();
41     ProfileConfiguration(Aws::Utils::Json::JsonView jsonValue);
42     ProfileConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
43     Aws::Utils::Json::JsonValue Jsonize() const;
44 
45 
46     /**
47      * <p>Configuration for inter-column evaluations. Configuration can be used to
48      * select evaluations and override parameters of evaluations. When configuration is
49      * undefined, the profile job will run all supported inter-column evaluations. </p>
50      */
GetDatasetStatisticsConfiguration()51     inline const StatisticsConfiguration& GetDatasetStatisticsConfiguration() const{ return m_datasetStatisticsConfiguration; }
52 
53     /**
54      * <p>Configuration for inter-column evaluations. Configuration can be used to
55      * select evaluations and override parameters of evaluations. When configuration is
56      * undefined, the profile job will run all supported inter-column evaluations. </p>
57      */
DatasetStatisticsConfigurationHasBeenSet()58     inline bool DatasetStatisticsConfigurationHasBeenSet() const { return m_datasetStatisticsConfigurationHasBeenSet; }
59 
60     /**
61      * <p>Configuration for inter-column evaluations. Configuration can be used to
62      * select evaluations and override parameters of evaluations. When configuration is
63      * undefined, the profile job will run all supported inter-column evaluations. </p>
64      */
SetDatasetStatisticsConfiguration(const StatisticsConfiguration & value)65     inline void SetDatasetStatisticsConfiguration(const StatisticsConfiguration& value) { m_datasetStatisticsConfigurationHasBeenSet = true; m_datasetStatisticsConfiguration = value; }
66 
67     /**
68      * <p>Configuration for inter-column evaluations. Configuration can be used to
69      * select evaluations and override parameters of evaluations. When configuration is
70      * undefined, the profile job will run all supported inter-column evaluations. </p>
71      */
SetDatasetStatisticsConfiguration(StatisticsConfiguration && value)72     inline void SetDatasetStatisticsConfiguration(StatisticsConfiguration&& value) { m_datasetStatisticsConfigurationHasBeenSet = true; m_datasetStatisticsConfiguration = std::move(value); }
73 
74     /**
75      * <p>Configuration for inter-column evaluations. Configuration can be used to
76      * select evaluations and override parameters of evaluations. When configuration is
77      * undefined, the profile job will run all supported inter-column evaluations. </p>
78      */
WithDatasetStatisticsConfiguration(const StatisticsConfiguration & value)79     inline ProfileConfiguration& WithDatasetStatisticsConfiguration(const StatisticsConfiguration& value) { SetDatasetStatisticsConfiguration(value); return *this;}
80 
81     /**
82      * <p>Configuration for inter-column evaluations. Configuration can be used to
83      * select evaluations and override parameters of evaluations. When configuration is
84      * undefined, the profile job will run all supported inter-column evaluations. </p>
85      */
WithDatasetStatisticsConfiguration(StatisticsConfiguration && value)86     inline ProfileConfiguration& WithDatasetStatisticsConfiguration(StatisticsConfiguration&& value) { SetDatasetStatisticsConfiguration(std::move(value)); return *this;}
87 
88 
89     /**
90      * <p>List of column selectors. ProfileColumns can be used to select columns from
91      * the dataset. When ProfileColumns is undefined, the profile job will profile all
92      * supported columns. </p>
93      */
GetProfileColumns()94     inline const Aws::Vector<ColumnSelector>& GetProfileColumns() const{ return m_profileColumns; }
95 
96     /**
97      * <p>List of column selectors. ProfileColumns can be used to select columns from
98      * the dataset. When ProfileColumns is undefined, the profile job will profile all
99      * supported columns. </p>
100      */
ProfileColumnsHasBeenSet()101     inline bool ProfileColumnsHasBeenSet() const { return m_profileColumnsHasBeenSet; }
102 
103     /**
104      * <p>List of column selectors. ProfileColumns can be used to select columns from
105      * the dataset. When ProfileColumns is undefined, the profile job will profile all
106      * supported columns. </p>
107      */
SetProfileColumns(const Aws::Vector<ColumnSelector> & value)108     inline void SetProfileColumns(const Aws::Vector<ColumnSelector>& value) { m_profileColumnsHasBeenSet = true; m_profileColumns = value; }
109 
110     /**
111      * <p>List of column selectors. ProfileColumns can be used to select columns from
112      * the dataset. When ProfileColumns is undefined, the profile job will profile all
113      * supported columns. </p>
114      */
SetProfileColumns(Aws::Vector<ColumnSelector> && value)115     inline void SetProfileColumns(Aws::Vector<ColumnSelector>&& value) { m_profileColumnsHasBeenSet = true; m_profileColumns = std::move(value); }
116 
117     /**
118      * <p>List of column selectors. ProfileColumns can be used to select columns from
119      * the dataset. When ProfileColumns is undefined, the profile job will profile all
120      * supported columns. </p>
121      */
WithProfileColumns(const Aws::Vector<ColumnSelector> & value)122     inline ProfileConfiguration& WithProfileColumns(const Aws::Vector<ColumnSelector>& value) { SetProfileColumns(value); return *this;}
123 
124     /**
125      * <p>List of column selectors. ProfileColumns can be used to select columns from
126      * the dataset. When ProfileColumns is undefined, the profile job will profile all
127      * supported columns. </p>
128      */
WithProfileColumns(Aws::Vector<ColumnSelector> && value)129     inline ProfileConfiguration& WithProfileColumns(Aws::Vector<ColumnSelector>&& value) { SetProfileColumns(std::move(value)); return *this;}
130 
131     /**
132      * <p>List of column selectors. ProfileColumns can be used to select columns from
133      * the dataset. When ProfileColumns is undefined, the profile job will profile all
134      * supported columns. </p>
135      */
AddProfileColumns(const ColumnSelector & value)136     inline ProfileConfiguration& AddProfileColumns(const ColumnSelector& value) { m_profileColumnsHasBeenSet = true; m_profileColumns.push_back(value); return *this; }
137 
138     /**
139      * <p>List of column selectors. ProfileColumns can be used to select columns from
140      * the dataset. When ProfileColumns is undefined, the profile job will profile all
141      * supported columns. </p>
142      */
AddProfileColumns(ColumnSelector && value)143     inline ProfileConfiguration& AddProfileColumns(ColumnSelector&& value) { m_profileColumnsHasBeenSet = true; m_profileColumns.push_back(std::move(value)); return *this; }
144 
145 
146     /**
147      * <p>List of configurations for column evaluations. ColumnStatisticsConfigurations
148      * are used to select evaluations and override parameters of evaluations for
149      * particular columns. When ColumnStatisticsConfigurations is undefined, the
150      * profile job will profile all supported columns and run all supported
151      * evaluations. </p>
152      */
GetColumnStatisticsConfigurations()153     inline const Aws::Vector<ColumnStatisticsConfiguration>& GetColumnStatisticsConfigurations() const{ return m_columnStatisticsConfigurations; }
154 
155     /**
156      * <p>List of configurations for column evaluations. ColumnStatisticsConfigurations
157      * are used to select evaluations and override parameters of evaluations for
158      * particular columns. When ColumnStatisticsConfigurations is undefined, the
159      * profile job will profile all supported columns and run all supported
160      * evaluations. </p>
161      */
ColumnStatisticsConfigurationsHasBeenSet()162     inline bool ColumnStatisticsConfigurationsHasBeenSet() const { return m_columnStatisticsConfigurationsHasBeenSet; }
163 
164     /**
165      * <p>List of configurations for column evaluations. ColumnStatisticsConfigurations
166      * are used to select evaluations and override parameters of evaluations for
167      * particular columns. When ColumnStatisticsConfigurations is undefined, the
168      * profile job will profile all supported columns and run all supported
169      * evaluations. </p>
170      */
SetColumnStatisticsConfigurations(const Aws::Vector<ColumnStatisticsConfiguration> & value)171     inline void SetColumnStatisticsConfigurations(const Aws::Vector<ColumnStatisticsConfiguration>& value) { m_columnStatisticsConfigurationsHasBeenSet = true; m_columnStatisticsConfigurations = value; }
172 
173     /**
174      * <p>List of configurations for column evaluations. ColumnStatisticsConfigurations
175      * are used to select evaluations and override parameters of evaluations for
176      * particular columns. When ColumnStatisticsConfigurations is undefined, the
177      * profile job will profile all supported columns and run all supported
178      * evaluations. </p>
179      */
SetColumnStatisticsConfigurations(Aws::Vector<ColumnStatisticsConfiguration> && value)180     inline void SetColumnStatisticsConfigurations(Aws::Vector<ColumnStatisticsConfiguration>&& value) { m_columnStatisticsConfigurationsHasBeenSet = true; m_columnStatisticsConfigurations = std::move(value); }
181 
182     /**
183      * <p>List of configurations for column evaluations. ColumnStatisticsConfigurations
184      * are used to select evaluations and override parameters of evaluations for
185      * particular columns. When ColumnStatisticsConfigurations is undefined, the
186      * profile job will profile all supported columns and run all supported
187      * evaluations. </p>
188      */
WithColumnStatisticsConfigurations(const Aws::Vector<ColumnStatisticsConfiguration> & value)189     inline ProfileConfiguration& WithColumnStatisticsConfigurations(const Aws::Vector<ColumnStatisticsConfiguration>& value) { SetColumnStatisticsConfigurations(value); return *this;}
190 
191     /**
192      * <p>List of configurations for column evaluations. ColumnStatisticsConfigurations
193      * are used to select evaluations and override parameters of evaluations for
194      * particular columns. When ColumnStatisticsConfigurations is undefined, the
195      * profile job will profile all supported columns and run all supported
196      * evaluations. </p>
197      */
WithColumnStatisticsConfigurations(Aws::Vector<ColumnStatisticsConfiguration> && value)198     inline ProfileConfiguration& WithColumnStatisticsConfigurations(Aws::Vector<ColumnStatisticsConfiguration>&& value) { SetColumnStatisticsConfigurations(std::move(value)); return *this;}
199 
200     /**
201      * <p>List of configurations for column evaluations. ColumnStatisticsConfigurations
202      * are used to select evaluations and override parameters of evaluations for
203      * particular columns. When ColumnStatisticsConfigurations is undefined, the
204      * profile job will profile all supported columns and run all supported
205      * evaluations. </p>
206      */
AddColumnStatisticsConfigurations(const ColumnStatisticsConfiguration & value)207     inline ProfileConfiguration& AddColumnStatisticsConfigurations(const ColumnStatisticsConfiguration& value) { m_columnStatisticsConfigurationsHasBeenSet = true; m_columnStatisticsConfigurations.push_back(value); return *this; }
208 
209     /**
210      * <p>List of configurations for column evaluations. ColumnStatisticsConfigurations
211      * are used to select evaluations and override parameters of evaluations for
212      * particular columns. When ColumnStatisticsConfigurations is undefined, the
213      * profile job will profile all supported columns and run all supported
214      * evaluations. </p>
215      */
AddColumnStatisticsConfigurations(ColumnStatisticsConfiguration && value)216     inline ProfileConfiguration& AddColumnStatisticsConfigurations(ColumnStatisticsConfiguration&& value) { m_columnStatisticsConfigurationsHasBeenSet = true; m_columnStatisticsConfigurations.push_back(std::move(value)); return *this; }
217 
218   private:
219 
220     StatisticsConfiguration m_datasetStatisticsConfiguration;
221     bool m_datasetStatisticsConfigurationHasBeenSet;
222 
223     Aws::Vector<ColumnSelector> m_profileColumns;
224     bool m_profileColumnsHasBeenSet;
225 
226     Aws::Vector<ColumnStatisticsConfiguration> m_columnStatisticsConfigurations;
227     bool m_columnStatisticsConfigurationsHasBeenSet;
228   };
229 
230 } // namespace Model
231 } // namespace GlueDataBrew
232 } // namespace Aws
233