aws-sdk-glue 1.149.0

AWS SDK for AWS Glue
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>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 <code>StructType</code> object that matches that data format.</p>
/// <p>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 <code>grok</code> classifier, an <code>XML</code> classifier, a <code>JSON</code> classifier, or a custom <code>CSV</code> classifier, as specified in one of the fields in the <code>Classifier</code> object.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Classifier {
    /// <p>A classifier that uses <code>grok</code>.</p>
    pub grok_classifier: ::std::option::Option<crate::types::GrokClassifier>,
    /// <p>A classifier for XML content.</p>
    pub xml_classifier: ::std::option::Option<crate::types::XmlClassifier>,
    /// <p>A classifier for JSON content.</p>
    pub json_classifier: ::std::option::Option<crate::types::JsonClassifier>,
    /// <p>A classifier for comma-separated values (CSV).</p>
    pub csv_classifier: ::std::option::Option<crate::types::CsvClassifier>,
}
impl Classifier {
    /// <p>A classifier that uses <code>grok</code>.</p>
    pub fn grok_classifier(&self) -> ::std::option::Option<&crate::types::GrokClassifier> {
        self.grok_classifier.as_ref()
    }
    /// <p>A classifier for XML content.</p>
    pub fn xml_classifier(&self) -> ::std::option::Option<&crate::types::XmlClassifier> {
        self.xml_classifier.as_ref()
    }
    /// <p>A classifier for JSON content.</p>
    pub fn json_classifier(&self) -> ::std::option::Option<&crate::types::JsonClassifier> {
        self.json_classifier.as_ref()
    }
    /// <p>A classifier for comma-separated values (CSV).</p>
    pub fn csv_classifier(&self) -> ::std::option::Option<&crate::types::CsvClassifier> {
        self.csv_classifier.as_ref()
    }
}
impl Classifier {
    /// Creates a new builder-style object to manufacture [`Classifier`](crate::types::Classifier).
    pub fn builder() -> crate::types::builders::ClassifierBuilder {
        crate::types::builders::ClassifierBuilder::default()
    }
}

/// A builder for [`Classifier`](crate::types::Classifier).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct ClassifierBuilder {
    pub(crate) grok_classifier: ::std::option::Option<crate::types::GrokClassifier>,
    pub(crate) xml_classifier: ::std::option::Option<crate::types::XmlClassifier>,
    pub(crate) json_classifier: ::std::option::Option<crate::types::JsonClassifier>,
    pub(crate) csv_classifier: ::std::option::Option<crate::types::CsvClassifier>,
}
impl ClassifierBuilder {
    /// <p>A classifier that uses <code>grok</code>.</p>
    pub fn grok_classifier(mut self, input: crate::types::GrokClassifier) -> Self {
        self.grok_classifier = ::std::option::Option::Some(input);
        self
    }
    /// <p>A classifier that uses <code>grok</code>.</p>
    pub fn set_grok_classifier(mut self, input: ::std::option::Option<crate::types::GrokClassifier>) -> Self {
        self.grok_classifier = input;
        self
    }
    /// <p>A classifier that uses <code>grok</code>.</p>
    pub fn get_grok_classifier(&self) -> &::std::option::Option<crate::types::GrokClassifier> {
        &self.grok_classifier
    }
    /// <p>A classifier for XML content.</p>
    pub fn xml_classifier(mut self, input: crate::types::XmlClassifier) -> Self {
        self.xml_classifier = ::std::option::Option::Some(input);
        self
    }
    /// <p>A classifier for XML content.</p>
    pub fn set_xml_classifier(mut self, input: ::std::option::Option<crate::types::XmlClassifier>) -> Self {
        self.xml_classifier = input;
        self
    }
    /// <p>A classifier for XML content.</p>
    pub fn get_xml_classifier(&self) -> &::std::option::Option<crate::types::XmlClassifier> {
        &self.xml_classifier
    }
    /// <p>A classifier for JSON content.</p>
    pub fn json_classifier(mut self, input: crate::types::JsonClassifier) -> Self {
        self.json_classifier = ::std::option::Option::Some(input);
        self
    }
    /// <p>A classifier for JSON content.</p>
    pub fn set_json_classifier(mut self, input: ::std::option::Option<crate::types::JsonClassifier>) -> Self {
        self.json_classifier = input;
        self
    }
    /// <p>A classifier for JSON content.</p>
    pub fn get_json_classifier(&self) -> &::std::option::Option<crate::types::JsonClassifier> {
        &self.json_classifier
    }
    /// <p>A classifier for comma-separated values (CSV).</p>
    pub fn csv_classifier(mut self, input: crate::types::CsvClassifier) -> Self {
        self.csv_classifier = ::std::option::Option::Some(input);
        self
    }
    /// <p>A classifier for comma-separated values (CSV).</p>
    pub fn set_csv_classifier(mut self, input: ::std::option::Option<crate::types::CsvClassifier>) -> Self {
        self.csv_classifier = input;
        self
    }
    /// <p>A classifier for comma-separated values (CSV).</p>
    pub fn get_csv_classifier(&self) -> &::std::option::Option<crate::types::CsvClassifier> {
        &self.csv_classifier
    }
    /// Consumes the builder and constructs a [`Classifier`](crate::types::Classifier).
    pub fn build(self) -> crate::types::Classifier {
        crate::types::Classifier {
            grok_classifier: self.grok_classifier,
            xml_classifier: self.xml_classifier,
            json_classifier: self.json_classifier,
            csv_classifier: self.csv_classifier,
        }
    }
}