1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ListDataSetsOutput {
    /// <p>The list of data sets, containing information including the creation time, the data set name, the data set organization, the data set format, and the last time the data set was referenced or updated.</p>
    pub data_sets: ::std::vec::Vec<crate::types::DataSetSummary>,
    /// <p>If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.</p>
    pub next_token: ::std::option::Option<::std::string::String>,
    _request_id: Option<String>,
}
impl ListDataSetsOutput {
    /// <p>The list of data sets, containing information including the creation time, the data set name, the data set organization, the data set format, and the last time the data set was referenced or updated.</p>
    pub fn data_sets(&self) -> &[crate::types::DataSetSummary] {
        use std::ops::Deref;
        self.data_sets.deref()
    }
    /// <p>If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.</p>
    pub fn next_token(&self) -> ::std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
impl ::aws_types::request_id::RequestId for ListDataSetsOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl ListDataSetsOutput {
    /// Creates a new builder-style object to manufacture [`ListDataSetsOutput`](crate::operation::list_data_sets::ListDataSetsOutput).
    pub fn builder() -> crate::operation::list_data_sets::builders::ListDataSetsOutputBuilder {
        crate::operation::list_data_sets::builders::ListDataSetsOutputBuilder::default()
    }
}

/// A builder for [`ListDataSetsOutput`](crate::operation::list_data_sets::ListDataSetsOutput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct ListDataSetsOutputBuilder {
    pub(crate) data_sets: ::std::option::Option<::std::vec::Vec<crate::types::DataSetSummary>>,
    pub(crate) next_token: ::std::option::Option<::std::string::String>,
    _request_id: Option<String>,
}
impl ListDataSetsOutputBuilder {
    /// Appends an item to `data_sets`.
    ///
    /// To override the contents of this collection use [`set_data_sets`](Self::set_data_sets).
    ///
    /// <p>The list of data sets, containing information including the creation time, the data set name, the data set organization, the data set format, and the last time the data set was referenced or updated.</p>
    pub fn data_sets(mut self, input: crate::types::DataSetSummary) -> Self {
        let mut v = self.data_sets.unwrap_or_default();
        v.push(input);
        self.data_sets = ::std::option::Option::Some(v);
        self
    }
    /// <p>The list of data sets, containing information including the creation time, the data set name, the data set organization, the data set format, and the last time the data set was referenced or updated.</p>
    pub fn set_data_sets(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DataSetSummary>>) -> Self {
        self.data_sets = input;
        self
    }
    /// <p>The list of data sets, containing information including the creation time, the data set name, the data set organization, the data set format, and the last time the data set was referenced or updated.</p>
    pub fn get_data_sets(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DataSetSummary>> {
        &self.data_sets
    }
    /// <p>If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.</p>
    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.next_token = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.</p>
    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.next_token = input;
        self
    }
    /// <p>If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.</p>
    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
        &self.next_token
    }
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
        self._request_id = Some(request_id.into());
        self
    }

    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
        self._request_id = request_id;
        self
    }
    /// Consumes the builder and constructs a [`ListDataSetsOutput`](crate::operation::list_data_sets::ListDataSetsOutput).
    /// This method will fail if any of the following fields are not set:
    /// - [`data_sets`](crate::operation::list_data_sets::builders::ListDataSetsOutputBuilder::data_sets)
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::list_data_sets::ListDataSetsOutput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::list_data_sets::ListDataSetsOutput {
            data_sets: self.data_sets.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "data_sets",
                    "data_sets was not specified but it is required when building ListDataSetsOutput",
                )
            })?,
            next_token: self.next_token,
            _request_id: self._request_id,
        })
    }
}