aws_sdk_cleanroomsml/types/
_dataset_input_config.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>Defines the Glue data source and schema mapping information.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct DatasetInputConfig {
7    /// <p>The schema information for the training data.</p>
8    pub schema: ::std::vec::Vec<crate::types::ColumnSchema>,
9    /// <p>A DataSource object that specifies the Glue data source for the training data.</p>
10    pub data_source: ::std::option::Option<crate::types::DataSource>,
11}
12impl DatasetInputConfig {
13    /// <p>The schema information for the training data.</p>
14    pub fn schema(&self) -> &[crate::types::ColumnSchema] {
15        use std::ops::Deref;
16        self.schema.deref()
17    }
18    /// <p>A DataSource object that specifies the Glue data source for the training data.</p>
19    pub fn data_source(&self) -> ::std::option::Option<&crate::types::DataSource> {
20        self.data_source.as_ref()
21    }
22}
23impl DatasetInputConfig {
24    /// Creates a new builder-style object to manufacture [`DatasetInputConfig`](crate::types::DatasetInputConfig).
25    pub fn builder() -> crate::types::builders::DatasetInputConfigBuilder {
26        crate::types::builders::DatasetInputConfigBuilder::default()
27    }
28}
29
30/// A builder for [`DatasetInputConfig`](crate::types::DatasetInputConfig).
31#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
32#[non_exhaustive]
33pub struct DatasetInputConfigBuilder {
34    pub(crate) schema: ::std::option::Option<::std::vec::Vec<crate::types::ColumnSchema>>,
35    pub(crate) data_source: ::std::option::Option<crate::types::DataSource>,
36}
37impl DatasetInputConfigBuilder {
38    /// Appends an item to `schema`.
39    ///
40    /// To override the contents of this collection use [`set_schema`](Self::set_schema).
41    ///
42    /// <p>The schema information for the training data.</p>
43    pub fn schema(mut self, input: crate::types::ColumnSchema) -> Self {
44        let mut v = self.schema.unwrap_or_default();
45        v.push(input);
46        self.schema = ::std::option::Option::Some(v);
47        self
48    }
49    /// <p>The schema information for the training data.</p>
50    pub fn set_schema(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ColumnSchema>>) -> Self {
51        self.schema = input;
52        self
53    }
54    /// <p>The schema information for the training data.</p>
55    pub fn get_schema(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ColumnSchema>> {
56        &self.schema
57    }
58    /// <p>A DataSource object that specifies the Glue data source for the training data.</p>
59    /// This field is required.
60    pub fn data_source(mut self, input: crate::types::DataSource) -> Self {
61        self.data_source = ::std::option::Option::Some(input);
62        self
63    }
64    /// <p>A DataSource object that specifies the Glue data source for the training data.</p>
65    pub fn set_data_source(mut self, input: ::std::option::Option<crate::types::DataSource>) -> Self {
66        self.data_source = input;
67        self
68    }
69    /// <p>A DataSource object that specifies the Glue data source for the training data.</p>
70    pub fn get_data_source(&self) -> &::std::option::Option<crate::types::DataSource> {
71        &self.data_source
72    }
73    /// Consumes the builder and constructs a [`DatasetInputConfig`](crate::types::DatasetInputConfig).
74    /// This method will fail if any of the following fields are not set:
75    /// - [`schema`](crate::types::builders::DatasetInputConfigBuilder::schema)
76    pub fn build(self) -> ::std::result::Result<crate::types::DatasetInputConfig, ::aws_smithy_types::error::operation::BuildError> {
77        ::std::result::Result::Ok(crate::types::DatasetInputConfig {
78            schema: self.schema.ok_or_else(|| {
79                ::aws_smithy_types::error::operation::BuildError::missing_field(
80                    "schema",
81                    "schema was not specified but it is required when building DatasetInputConfig",
82                )
83            })?,
84            data_source: self.data_source,
85        })
86    }
87}