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
136
137
138
139
140
// 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 UpdateFindingAggregatorOutput {
    /// <p>The ARN of the finding aggregator.</p>
    pub finding_aggregator_arn: ::std::option::Option<::std::string::String>,
    /// <p>The aggregation Region.</p>
    pub finding_aggregation_region: ::std::option::Option<::std::string::String>,
    /// <p>Indicates whether to link all Regions, all Regions except for a list of excluded Regions, or a list of included Regions.</p>
    pub region_linking_mode: ::std::option::Option<::std::string::String>,
    /// <p>The list of excluded Regions or included Regions.</p>
    pub regions: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    _request_id: Option<String>,
}
impl UpdateFindingAggregatorOutput {
    /// <p>The ARN of the finding aggregator.</p>
    pub fn finding_aggregator_arn(&self) -> ::std::option::Option<&str> {
        self.finding_aggregator_arn.as_deref()
    }
    /// <p>The aggregation Region.</p>
    pub fn finding_aggregation_region(&self) -> ::std::option::Option<&str> {
        self.finding_aggregation_region.as_deref()
    }
    /// <p>Indicates whether to link all Regions, all Regions except for a list of excluded Regions, or a list of included Regions.</p>
    pub fn region_linking_mode(&self) -> ::std::option::Option<&str> {
        self.region_linking_mode.as_deref()
    }
    /// <p>The list of excluded Regions or included Regions.</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 `.regions.is_none()`.
    pub fn regions(&self) -> &[::std::string::String] {
        self.regions.as_deref().unwrap_or_default()
    }
}
impl ::aws_types::request_id::RequestId for UpdateFindingAggregatorOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl UpdateFindingAggregatorOutput {
    /// Creates a new builder-style object to manufacture [`UpdateFindingAggregatorOutput`](crate::operation::update_finding_aggregator::UpdateFindingAggregatorOutput).
    pub fn builder() -> crate::operation::update_finding_aggregator::builders::UpdateFindingAggregatorOutputBuilder {
        crate::operation::update_finding_aggregator::builders::UpdateFindingAggregatorOutputBuilder::default()
    }
}

/// A builder for [`UpdateFindingAggregatorOutput`](crate::operation::update_finding_aggregator::UpdateFindingAggregatorOutput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct UpdateFindingAggregatorOutputBuilder {
    pub(crate) finding_aggregator_arn: ::std::option::Option<::std::string::String>,
    pub(crate) finding_aggregation_region: ::std::option::Option<::std::string::String>,
    pub(crate) region_linking_mode: ::std::option::Option<::std::string::String>,
    pub(crate) regions: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    _request_id: Option<String>,
}
impl UpdateFindingAggregatorOutputBuilder {
    /// <p>The ARN of the finding aggregator.</p>
    pub fn finding_aggregator_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.finding_aggregator_arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ARN of the finding aggregator.</p>
    pub fn set_finding_aggregator_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.finding_aggregator_arn = input;
        self
    }
    /// <p>The ARN of the finding aggregator.</p>
    pub fn get_finding_aggregator_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.finding_aggregator_arn
    }
    /// <p>The aggregation Region.</p>
    pub fn finding_aggregation_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.finding_aggregation_region = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The aggregation Region.</p>
    pub fn set_finding_aggregation_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.finding_aggregation_region = input;
        self
    }
    /// <p>The aggregation Region.</p>
    pub fn get_finding_aggregation_region(&self) -> &::std::option::Option<::std::string::String> {
        &self.finding_aggregation_region
    }
    /// <p>Indicates whether to link all Regions, all Regions except for a list of excluded Regions, or a list of included Regions.</p>
    pub fn region_linking_mode(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.region_linking_mode = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>Indicates whether to link all Regions, all Regions except for a list of excluded Regions, or a list of included Regions.</p>
    pub fn set_region_linking_mode(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.region_linking_mode = input;
        self
    }
    /// <p>Indicates whether to link all Regions, all Regions except for a list of excluded Regions, or a list of included Regions.</p>
    pub fn get_region_linking_mode(&self) -> &::std::option::Option<::std::string::String> {
        &self.region_linking_mode
    }
    /// Appends an item to `regions`.
    ///
    /// To override the contents of this collection use [`set_regions`](Self::set_regions).
    ///
    /// <p>The list of excluded Regions or included Regions.</p>
    pub fn regions(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut v = self.regions.unwrap_or_default();
        v.push(input.into());
        self.regions = ::std::option::Option::Some(v);
        self
    }
    /// <p>The list of excluded Regions or included Regions.</p>
    pub fn set_regions(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.regions = input;
        self
    }
    /// <p>The list of excluded Regions or included Regions.</p>
    pub fn get_regions(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        &self.regions
    }
    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 [`UpdateFindingAggregatorOutput`](crate::operation::update_finding_aggregator::UpdateFindingAggregatorOutput).
    pub fn build(self) -> crate::operation::update_finding_aggregator::UpdateFindingAggregatorOutput {
        crate::operation::update_finding_aggregator::UpdateFindingAggregatorOutput {
            finding_aggregator_arn: self.finding_aggregator_arn,
            finding_aggregation_region: self.finding_aggregation_region,
            region_linking_mode: self.region_linking_mode,
            regions: self.regions,
            _request_id: self._request_id,
        }
    }
}