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
// 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 ListDiscoverersOutput {
    /// <p>An array of DiscovererSummary information.</p>
    pub discoverers: ::std::option::Option<::std::vec::Vec<crate::types::DiscovererSummary>>,
    /// <p>The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.</p>
    pub next_token: ::std::option::Option<::std::string::String>,
    _request_id: Option<String>,
}
impl ListDiscoverersOutput {
    /// <p>An array of DiscovererSummary information.</p>
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.discoverers.is_none()`.
    pub fn discoverers(&self) -> &[crate::types::DiscovererSummary] {
        self.discoverers.as_deref().unwrap_or_default()
    }
    /// <p>The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.</p>
    pub fn next_token(&self) -> ::std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
impl ::aws_types::request_id::RequestId for ListDiscoverersOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl ListDiscoverersOutput {
    /// Creates a new builder-style object to manufacture [`ListDiscoverersOutput`](crate::operation::list_discoverers::ListDiscoverersOutput).
    pub fn builder() -> crate::operation::list_discoverers::builders::ListDiscoverersOutputBuilder {
        crate::operation::list_discoverers::builders::ListDiscoverersOutputBuilder::default()
    }
}

/// A builder for [`ListDiscoverersOutput`](crate::operation::list_discoverers::ListDiscoverersOutput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct ListDiscoverersOutputBuilder {
    pub(crate) discoverers: ::std::option::Option<::std::vec::Vec<crate::types::DiscovererSummary>>,
    pub(crate) next_token: ::std::option::Option<::std::string::String>,
    _request_id: Option<String>,
}
impl ListDiscoverersOutputBuilder {
    /// Appends an item to `discoverers`.
    ///
    /// To override the contents of this collection use [`set_discoverers`](Self::set_discoverers).
    ///
    /// <p>An array of DiscovererSummary information.</p>
    pub fn discoverers(mut self, input: crate::types::DiscovererSummary) -> Self {
        let mut v = self.discoverers.unwrap_or_default();
        v.push(input);
        self.discoverers = ::std::option::Option::Some(v);
        self
    }
    /// <p>An array of DiscovererSummary information.</p>
    pub fn set_discoverers(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DiscovererSummary>>) -> Self {
        self.discoverers = input;
        self
    }
    /// <p>An array of DiscovererSummary information.</p>
    pub fn get_discoverers(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DiscovererSummary>> {
        &self.discoverers
    }
    /// <p>The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.</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>The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.</p>
    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.next_token = input;
        self
    }
    /// <p>The token that specifies the next page of results to return. To request the first page, leave NextToken empty. The token will expire in 24 hours, and cannot be shared with other accounts.</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 [`ListDiscoverersOutput`](crate::operation::list_discoverers::ListDiscoverersOutput).
    pub fn build(self) -> crate::operation::list_discoverers::ListDiscoverersOutput {
        crate::operation::list_discoverers::ListDiscoverersOutput {
            discoverers: self.discoverers,
            next_token: self.next_token,
            _request_id: self._request_id,
        }
    }
}