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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>A structure for the output.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct GetWorkUnitsOutput {
    /// <p>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</p>
    pub next_token: ::std::option::Option<::std::string::String>,
    /// <p>The ID of the plan query operation.</p>
    pub query_id: ::std::string::String,
    /// <p>A <code>WorkUnitRangeList</code> object that specifies the valid range of work unit IDs for querying the execution service.</p>
    pub work_unit_ranges: ::std::vec::Vec<crate::types::WorkUnitRange>,
    _request_id: Option<String>,
}
impl GetWorkUnitsOutput {
    /// <p>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</p>
    pub fn next_token(&self) -> ::std::option::Option<&str> {
        self.next_token.as_deref()
    }
    /// <p>The ID of the plan query operation.</p>
    pub fn query_id(&self) -> &str {
        use std::ops::Deref;
        self.query_id.deref()
    }
    /// <p>A <code>WorkUnitRangeList</code> object that specifies the valid range of work unit IDs for querying the execution service.</p>
    pub fn work_unit_ranges(&self) -> &[crate::types::WorkUnitRange] {
        use std::ops::Deref;
        self.work_unit_ranges.deref()
    }
}
impl ::aws_types::request_id::RequestId for GetWorkUnitsOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl GetWorkUnitsOutput {
    /// Creates a new builder-style object to manufacture [`GetWorkUnitsOutput`](crate::operation::get_work_units::GetWorkUnitsOutput).
    pub fn builder() -> crate::operation::get_work_units::builders::GetWorkUnitsOutputBuilder {
        crate::operation::get_work_units::builders::GetWorkUnitsOutputBuilder::default()
    }
}

/// A builder for [`GetWorkUnitsOutput`](crate::operation::get_work_units::GetWorkUnitsOutput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct GetWorkUnitsOutputBuilder {
    pub(crate) next_token: ::std::option::Option<::std::string::String>,
    pub(crate) query_id: ::std::option::Option<::std::string::String>,
    pub(crate) work_unit_ranges: ::std::option::Option<::std::vec::Vec<crate::types::WorkUnitRange>>,
    _request_id: Option<String>,
}
impl GetWorkUnitsOutputBuilder {
    /// <p>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</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>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</p>
    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.next_token = input;
        self
    }
    /// <p>A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.</p>
    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
        &self.next_token
    }
    /// <p>The ID of the plan query operation.</p>
    /// This field is required.
    pub fn query_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.query_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ID of the plan query operation.</p>
    pub fn set_query_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.query_id = input;
        self
    }
    /// <p>The ID of the plan query operation.</p>
    pub fn get_query_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.query_id
    }
    /// Appends an item to `work_unit_ranges`.
    ///
    /// To override the contents of this collection use [`set_work_unit_ranges`](Self::set_work_unit_ranges).
    ///
    /// <p>A <code>WorkUnitRangeList</code> object that specifies the valid range of work unit IDs for querying the execution service.</p>
    pub fn work_unit_ranges(mut self, input: crate::types::WorkUnitRange) -> Self {
        let mut v = self.work_unit_ranges.unwrap_or_default();
        v.push(input);
        self.work_unit_ranges = ::std::option::Option::Some(v);
        self
    }
    /// <p>A <code>WorkUnitRangeList</code> object that specifies the valid range of work unit IDs for querying the execution service.</p>
    pub fn set_work_unit_ranges(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::WorkUnitRange>>) -> Self {
        self.work_unit_ranges = input;
        self
    }
    /// <p>A <code>WorkUnitRangeList</code> object that specifies the valid range of work unit IDs for querying the execution service.</p>
    pub fn get_work_unit_ranges(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::WorkUnitRange>> {
        &self.work_unit_ranges
    }
    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 [`GetWorkUnitsOutput`](crate::operation::get_work_units::GetWorkUnitsOutput).
    /// This method will fail if any of the following fields are not set:
    /// - [`query_id`](crate::operation::get_work_units::builders::GetWorkUnitsOutputBuilder::query_id)
    /// - [`work_unit_ranges`](crate::operation::get_work_units::builders::GetWorkUnitsOutputBuilder::work_unit_ranges)
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::get_work_units::GetWorkUnitsOutput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::get_work_units::GetWorkUnitsOutput {
            next_token: self.next_token,
            query_id: self.query_id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "query_id",
                    "query_id was not specified but it is required when building GetWorkUnitsOutput",
                )
            })?,
            work_unit_ranges: self.work_unit_ranges.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "work_unit_ranges",
                    "work_unit_ranges was not specified but it is required when building GetWorkUnitsOutput",
                )
            })?,
            _request_id: self._request_id,
        })
    }
}