/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Glue { namespace Model { /** *

Classifiers are triggered during a crawl task. A classifier checks whether a * given file is in a format it can handle. If it is, the classifier creates a * schema in the form of a StructType object that matches that data * format.

You can use the standard classifiers that Glue provides, or you * can write your own classifiers to best categorize your data sources and specify * the appropriate schemas to use for them. A classifier can be a grok * classifier, an XML classifier, a JSON classifier, or a * custom CSV classifier, as specified in one of the fields in the * Classifier object.

See Also:

AWS API * Reference

*/ class Classifier { public: AWS_GLUE_API Classifier(); AWS_GLUE_API Classifier(Aws::Utils::Json::JsonView jsonValue); AWS_GLUE_API Classifier& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_GLUE_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

A classifier that uses grok.

*/ inline const GrokClassifier& GetGrokClassifier() const{ return m_grokClassifier; } /** *

A classifier that uses grok.

*/ inline bool GrokClassifierHasBeenSet() const { return m_grokClassifierHasBeenSet; } /** *

A classifier that uses grok.

*/ inline void SetGrokClassifier(const GrokClassifier& value) { m_grokClassifierHasBeenSet = true; m_grokClassifier = value; } /** *

A classifier that uses grok.

*/ inline void SetGrokClassifier(GrokClassifier&& value) { m_grokClassifierHasBeenSet = true; m_grokClassifier = std::move(value); } /** *

A classifier that uses grok.

*/ inline Classifier& WithGrokClassifier(const GrokClassifier& value) { SetGrokClassifier(value); return *this;} /** *

A classifier that uses grok.

*/ inline Classifier& WithGrokClassifier(GrokClassifier&& value) { SetGrokClassifier(std::move(value)); return *this;} /** *

A classifier for XML content.

*/ inline const XMLClassifier& GetXMLClassifier() const{ return m_xMLClassifier; } /** *

A classifier for XML content.

*/ inline bool XMLClassifierHasBeenSet() const { return m_xMLClassifierHasBeenSet; } /** *

A classifier for XML content.

*/ inline void SetXMLClassifier(const XMLClassifier& value) { m_xMLClassifierHasBeenSet = true; m_xMLClassifier = value; } /** *

A classifier for XML content.

*/ inline void SetXMLClassifier(XMLClassifier&& value) { m_xMLClassifierHasBeenSet = true; m_xMLClassifier = std::move(value); } /** *

A classifier for XML content.

*/ inline Classifier& WithXMLClassifier(const XMLClassifier& value) { SetXMLClassifier(value); return *this;} /** *

A classifier for XML content.

*/ inline Classifier& WithXMLClassifier(XMLClassifier&& value) { SetXMLClassifier(std::move(value)); return *this;} /** *

A classifier for JSON content.

*/ inline const JsonClassifier& GetJsonClassifier() const{ return m_jsonClassifier; } /** *

A classifier for JSON content.

*/ inline bool JsonClassifierHasBeenSet() const { return m_jsonClassifierHasBeenSet; } /** *

A classifier for JSON content.

*/ inline void SetJsonClassifier(const JsonClassifier& value) { m_jsonClassifierHasBeenSet = true; m_jsonClassifier = value; } /** *

A classifier for JSON content.

*/ inline void SetJsonClassifier(JsonClassifier&& value) { m_jsonClassifierHasBeenSet = true; m_jsonClassifier = std::move(value); } /** *

A classifier for JSON content.

*/ inline Classifier& WithJsonClassifier(const JsonClassifier& value) { SetJsonClassifier(value); return *this;} /** *

A classifier for JSON content.

*/ inline Classifier& WithJsonClassifier(JsonClassifier&& value) { SetJsonClassifier(std::move(value)); return *this;} /** *

A classifier for comma-separated values (CSV).

*/ inline const CsvClassifier& GetCsvClassifier() const{ return m_csvClassifier; } /** *

A classifier for comma-separated values (CSV).

*/ inline bool CsvClassifierHasBeenSet() const { return m_csvClassifierHasBeenSet; } /** *

A classifier for comma-separated values (CSV).

*/ inline void SetCsvClassifier(const CsvClassifier& value) { m_csvClassifierHasBeenSet = true; m_csvClassifier = value; } /** *

A classifier for comma-separated values (CSV).

*/ inline void SetCsvClassifier(CsvClassifier&& value) { m_csvClassifierHasBeenSet = true; m_csvClassifier = std::move(value); } /** *

A classifier for comma-separated values (CSV).

*/ inline Classifier& WithCsvClassifier(const CsvClassifier& value) { SetCsvClassifier(value); return *this;} /** *

A classifier for comma-separated values (CSV).

*/ inline Classifier& WithCsvClassifier(CsvClassifier&& value) { SetCsvClassifier(std::move(value)); return *this;} private: GrokClassifier m_grokClassifier; bool m_grokClassifierHasBeenSet = false; XMLClassifier m_xMLClassifier; bool m_xMLClassifierHasBeenSet = false; JsonClassifier m_jsonClassifier; bool m_jsonClassifierHasBeenSet = false; CsvClassifier m_csvClassifier; bool m_csvClassifierHasBeenSet = false; }; } // namespace Model } // namespace Glue } // namespace Aws