aws_sdk_securityir/operation/update_case/
_update_case_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
5pub struct UpdateCaseInput {
6    /// <p>Required element for UpdateCase to identify the case ID for updates.</p>
7    pub case_id: ::std::option::Option<::std::string::String>,
8    /// <p>Optional element for UpdateCase to provide content for the title field.</p>
9    pub title: ::std::option::Option<::std::string::String>,
10    /// <p>Optional element for UpdateCase to provide content for the description field.</p>
11    pub description: ::std::option::Option<::std::string::String>,
12    /// <p>Optional element for UpdateCase to provide content for the customer reported incident start date field.</p>
13    pub reported_incident_start_date: ::std::option::Option<::aws_smithy_types::DateTime>,
14    /// <p>Optional element for UpdateCase to provide content for the incident start date field.</p>
15    pub actual_incident_start_date: ::std::option::Option<::aws_smithy_types::DateTime>,
16    /// <p>Optional element for UpdateCase to provide content for the engagement type field. <code>Available engagement types include Security Incident | Investigation</code>.</p>
17    pub engagement_type: ::std::option::Option<crate::types::EngagementType>,
18    /// <p>Optional element for UpdateCase to provide content to add additional watchers to a case.</p>
19    pub watchers_to_add: ::std::option::Option<::std::vec::Vec<crate::types::Watcher>>,
20    /// <p>Optional element for UpdateCase to provide content to remove existing watchers from a case.</p>
21    pub watchers_to_delete: ::std::option::Option<::std::vec::Vec<crate::types::Watcher>>,
22    /// <p>Optional element for UpdateCase to provide content to add additional suspicious IP addresses related to a case.</p>
23    pub threat_actor_ip_addresses_to_add: ::std::option::Option<::std::vec::Vec<crate::types::ThreatActorIp>>,
24    /// <p>Optional element for UpdateCase to provide content to remove suspicious IP addresses from a case.</p>
25    pub threat_actor_ip_addresses_to_delete: ::std::option::Option<::std::vec::Vec<crate::types::ThreatActorIp>>,
26    /// <p>Optional element for UpdateCase to provide content to add services impacted.</p>
27    pub impacted_services_to_add: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
28    /// <p>Optional element for UpdateCase to provide content to remove services impacted.</p>
29    pub impacted_services_to_delete: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
30    /// <p>Optional element for UpdateCase to provide content to add regions impacted.</p>
31    pub impacted_aws_regions_to_add: ::std::option::Option<::std::vec::Vec<crate::types::ImpactedAwsRegion>>,
32    /// <p>Optional element for UpdateCase to provide content to remove regions impacted.</p>
33    pub impacted_aws_regions_to_delete: ::std::option::Option<::std::vec::Vec<crate::types::ImpactedAwsRegion>>,
34    /// <p>Optional element for UpdateCase to provide content to add accounts impacted.</p><note>
35    /// <p>AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be <code>123123123</code> which is nine digits, and with zero-prepend would be <code>000123123123</code>. Not zero-prepending to 12 digits could result in errors.</p>
36    /// </note>
37    pub impacted_accounts_to_add: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
38    /// <p>Optional element for UpdateCase to provide content to add accounts impacted.</p><note>
39    /// <p>AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be <code>123123123</code> which is nine digits, and with zero-prepend would be <code>000123123123</code>. Not zero-prepending to 12 digits could result in errors.</p>
40    /// </note>
41    pub impacted_accounts_to_delete: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
42}
43impl UpdateCaseInput {
44    /// <p>Required element for UpdateCase to identify the case ID for updates.</p>
45    pub fn case_id(&self) -> ::std::option::Option<&str> {
46        self.case_id.as_deref()
47    }
48    /// <p>Optional element for UpdateCase to provide content for the title field.</p>
49    pub fn title(&self) -> ::std::option::Option<&str> {
50        self.title.as_deref()
51    }
52    /// <p>Optional element for UpdateCase to provide content for the description field.</p>
53    pub fn description(&self) -> ::std::option::Option<&str> {
54        self.description.as_deref()
55    }
56    /// <p>Optional element for UpdateCase to provide content for the customer reported incident start date field.</p>
57    pub fn reported_incident_start_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
58        self.reported_incident_start_date.as_ref()
59    }
60    /// <p>Optional element for UpdateCase to provide content for the incident start date field.</p>
61    pub fn actual_incident_start_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
62        self.actual_incident_start_date.as_ref()
63    }
64    /// <p>Optional element for UpdateCase to provide content for the engagement type field. <code>Available engagement types include Security Incident | Investigation</code>.</p>
65    pub fn engagement_type(&self) -> ::std::option::Option<&crate::types::EngagementType> {
66        self.engagement_type.as_ref()
67    }
68    /// <p>Optional element for UpdateCase to provide content to add additional watchers to a case.</p>
69    ///
70    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.watchers_to_add.is_none()`.
71    pub fn watchers_to_add(&self) -> &[crate::types::Watcher] {
72        self.watchers_to_add.as_deref().unwrap_or_default()
73    }
74    /// <p>Optional element for UpdateCase to provide content to remove existing watchers from a case.</p>
75    ///
76    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.watchers_to_delete.is_none()`.
77    pub fn watchers_to_delete(&self) -> &[crate::types::Watcher] {
78        self.watchers_to_delete.as_deref().unwrap_or_default()
79    }
80    /// <p>Optional element for UpdateCase to provide content to add additional suspicious IP addresses related to a case.</p>
81    ///
82    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.threat_actor_ip_addresses_to_add.is_none()`.
83    pub fn threat_actor_ip_addresses_to_add(&self) -> &[crate::types::ThreatActorIp] {
84        self.threat_actor_ip_addresses_to_add.as_deref().unwrap_or_default()
85    }
86    /// <p>Optional element for UpdateCase to provide content to remove suspicious IP addresses from a case.</p>
87    ///
88    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.threat_actor_ip_addresses_to_delete.is_none()`.
89    pub fn threat_actor_ip_addresses_to_delete(&self) -> &[crate::types::ThreatActorIp] {
90        self.threat_actor_ip_addresses_to_delete.as_deref().unwrap_or_default()
91    }
92    /// <p>Optional element for UpdateCase to provide content to add services impacted.</p>
93    ///
94    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.impacted_services_to_add.is_none()`.
95    pub fn impacted_services_to_add(&self) -> &[::std::string::String] {
96        self.impacted_services_to_add.as_deref().unwrap_or_default()
97    }
98    /// <p>Optional element for UpdateCase to provide content to remove services impacted.</p>
99    ///
100    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.impacted_services_to_delete.is_none()`.
101    pub fn impacted_services_to_delete(&self) -> &[::std::string::String] {
102        self.impacted_services_to_delete.as_deref().unwrap_or_default()
103    }
104    /// <p>Optional element for UpdateCase to provide content to add regions impacted.</p>
105    ///
106    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.impacted_aws_regions_to_add.is_none()`.
107    pub fn impacted_aws_regions_to_add(&self) -> &[crate::types::ImpactedAwsRegion] {
108        self.impacted_aws_regions_to_add.as_deref().unwrap_or_default()
109    }
110    /// <p>Optional element for UpdateCase to provide content to remove regions impacted.</p>
111    ///
112    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.impacted_aws_regions_to_delete.is_none()`.
113    pub fn impacted_aws_regions_to_delete(&self) -> &[crate::types::ImpactedAwsRegion] {
114        self.impacted_aws_regions_to_delete.as_deref().unwrap_or_default()
115    }
116    /// <p>Optional element for UpdateCase to provide content to add accounts impacted.</p><note>
117    /// <p>AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be <code>123123123</code> which is nine digits, and with zero-prepend would be <code>000123123123</code>. Not zero-prepending to 12 digits could result in errors.</p>
118    /// </note>
119    ///
120    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.impacted_accounts_to_add.is_none()`.
121    pub fn impacted_accounts_to_add(&self) -> &[::std::string::String] {
122        self.impacted_accounts_to_add.as_deref().unwrap_or_default()
123    }
124    /// <p>Optional element for UpdateCase to provide content to add accounts impacted.</p><note>
125    /// <p>AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be <code>123123123</code> which is nine digits, and with zero-prepend would be <code>000123123123</code>. Not zero-prepending to 12 digits could result in errors.</p>
126    /// </note>
127    ///
128    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.impacted_accounts_to_delete.is_none()`.
129    pub fn impacted_accounts_to_delete(&self) -> &[::std::string::String] {
130        self.impacted_accounts_to_delete.as_deref().unwrap_or_default()
131    }
132}
133impl ::std::fmt::Debug for UpdateCaseInput {
134    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
135        let mut formatter = f.debug_struct("UpdateCaseInput");
136        formatter.field("case_id", &self.case_id);
137        formatter.field("title", &"*** Sensitive Data Redacted ***");
138        formatter.field("description", &"*** Sensitive Data Redacted ***");
139        formatter.field("reported_incident_start_date", &self.reported_incident_start_date);
140        formatter.field("actual_incident_start_date", &self.actual_incident_start_date);
141        formatter.field("engagement_type", &self.engagement_type);
142        formatter.field("watchers_to_add", &self.watchers_to_add);
143        formatter.field("watchers_to_delete", &self.watchers_to_delete);
144        formatter.field("threat_actor_ip_addresses_to_add", &self.threat_actor_ip_addresses_to_add);
145        formatter.field("threat_actor_ip_addresses_to_delete", &self.threat_actor_ip_addresses_to_delete);
146        formatter.field("impacted_services_to_add", &self.impacted_services_to_add);
147        formatter.field("impacted_services_to_delete", &self.impacted_services_to_delete);
148        formatter.field("impacted_aws_regions_to_add", &self.impacted_aws_regions_to_add);
149        formatter.field("impacted_aws_regions_to_delete", &self.impacted_aws_regions_to_delete);
150        formatter.field("impacted_accounts_to_add", &self.impacted_accounts_to_add);
151        formatter.field("impacted_accounts_to_delete", &self.impacted_accounts_to_delete);
152        formatter.finish()
153    }
154}
155impl UpdateCaseInput {
156    /// Creates a new builder-style object to manufacture [`UpdateCaseInput`](crate::operation::update_case::UpdateCaseInput).
157    pub fn builder() -> crate::operation::update_case::builders::UpdateCaseInputBuilder {
158        crate::operation::update_case::builders::UpdateCaseInputBuilder::default()
159    }
160}
161
162/// A builder for [`UpdateCaseInput`](crate::operation::update_case::UpdateCaseInput).
163#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
164#[non_exhaustive]
165pub struct UpdateCaseInputBuilder {
166    pub(crate) case_id: ::std::option::Option<::std::string::String>,
167    pub(crate) title: ::std::option::Option<::std::string::String>,
168    pub(crate) description: ::std::option::Option<::std::string::String>,
169    pub(crate) reported_incident_start_date: ::std::option::Option<::aws_smithy_types::DateTime>,
170    pub(crate) actual_incident_start_date: ::std::option::Option<::aws_smithy_types::DateTime>,
171    pub(crate) engagement_type: ::std::option::Option<crate::types::EngagementType>,
172    pub(crate) watchers_to_add: ::std::option::Option<::std::vec::Vec<crate::types::Watcher>>,
173    pub(crate) watchers_to_delete: ::std::option::Option<::std::vec::Vec<crate::types::Watcher>>,
174    pub(crate) threat_actor_ip_addresses_to_add: ::std::option::Option<::std::vec::Vec<crate::types::ThreatActorIp>>,
175    pub(crate) threat_actor_ip_addresses_to_delete: ::std::option::Option<::std::vec::Vec<crate::types::ThreatActorIp>>,
176    pub(crate) impacted_services_to_add: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
177    pub(crate) impacted_services_to_delete: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
178    pub(crate) impacted_aws_regions_to_add: ::std::option::Option<::std::vec::Vec<crate::types::ImpactedAwsRegion>>,
179    pub(crate) impacted_aws_regions_to_delete: ::std::option::Option<::std::vec::Vec<crate::types::ImpactedAwsRegion>>,
180    pub(crate) impacted_accounts_to_add: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
181    pub(crate) impacted_accounts_to_delete: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
182}
183impl UpdateCaseInputBuilder {
184    /// <p>Required element for UpdateCase to identify the case ID for updates.</p>
185    /// This field is required.
186    pub fn case_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
187        self.case_id = ::std::option::Option::Some(input.into());
188        self
189    }
190    /// <p>Required element for UpdateCase to identify the case ID for updates.</p>
191    pub fn set_case_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
192        self.case_id = input;
193        self
194    }
195    /// <p>Required element for UpdateCase to identify the case ID for updates.</p>
196    pub fn get_case_id(&self) -> &::std::option::Option<::std::string::String> {
197        &self.case_id
198    }
199    /// <p>Optional element for UpdateCase to provide content for the title field.</p>
200    pub fn title(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
201        self.title = ::std::option::Option::Some(input.into());
202        self
203    }
204    /// <p>Optional element for UpdateCase to provide content for the title field.</p>
205    pub fn set_title(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
206        self.title = input;
207        self
208    }
209    /// <p>Optional element for UpdateCase to provide content for the title field.</p>
210    pub fn get_title(&self) -> &::std::option::Option<::std::string::String> {
211        &self.title
212    }
213    /// <p>Optional element for UpdateCase to provide content for the description field.</p>
214    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
215        self.description = ::std::option::Option::Some(input.into());
216        self
217    }
218    /// <p>Optional element for UpdateCase to provide content for the description field.</p>
219    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
220        self.description = input;
221        self
222    }
223    /// <p>Optional element for UpdateCase to provide content for the description field.</p>
224    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
225        &self.description
226    }
227    /// <p>Optional element for UpdateCase to provide content for the customer reported incident start date field.</p>
228    pub fn reported_incident_start_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
229        self.reported_incident_start_date = ::std::option::Option::Some(input);
230        self
231    }
232    /// <p>Optional element for UpdateCase to provide content for the customer reported incident start date field.</p>
233    pub fn set_reported_incident_start_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
234        self.reported_incident_start_date = input;
235        self
236    }
237    /// <p>Optional element for UpdateCase to provide content for the customer reported incident start date field.</p>
238    pub fn get_reported_incident_start_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
239        &self.reported_incident_start_date
240    }
241    /// <p>Optional element for UpdateCase to provide content for the incident start date field.</p>
242    pub fn actual_incident_start_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
243        self.actual_incident_start_date = ::std::option::Option::Some(input);
244        self
245    }
246    /// <p>Optional element for UpdateCase to provide content for the incident start date field.</p>
247    pub fn set_actual_incident_start_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
248        self.actual_incident_start_date = input;
249        self
250    }
251    /// <p>Optional element for UpdateCase to provide content for the incident start date field.</p>
252    pub fn get_actual_incident_start_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
253        &self.actual_incident_start_date
254    }
255    /// <p>Optional element for UpdateCase to provide content for the engagement type field. <code>Available engagement types include Security Incident | Investigation</code>.</p>
256    pub fn engagement_type(mut self, input: crate::types::EngagementType) -> Self {
257        self.engagement_type = ::std::option::Option::Some(input);
258        self
259    }
260    /// <p>Optional element for UpdateCase to provide content for the engagement type field. <code>Available engagement types include Security Incident | Investigation</code>.</p>
261    pub fn set_engagement_type(mut self, input: ::std::option::Option<crate::types::EngagementType>) -> Self {
262        self.engagement_type = input;
263        self
264    }
265    /// <p>Optional element for UpdateCase to provide content for the engagement type field. <code>Available engagement types include Security Incident | Investigation</code>.</p>
266    pub fn get_engagement_type(&self) -> &::std::option::Option<crate::types::EngagementType> {
267        &self.engagement_type
268    }
269    /// Appends an item to `watchers_to_add`.
270    ///
271    /// To override the contents of this collection use [`set_watchers_to_add`](Self::set_watchers_to_add).
272    ///
273    /// <p>Optional element for UpdateCase to provide content to add additional watchers to a case.</p>
274    pub fn watchers_to_add(mut self, input: crate::types::Watcher) -> Self {
275        let mut v = self.watchers_to_add.unwrap_or_default();
276        v.push(input);
277        self.watchers_to_add = ::std::option::Option::Some(v);
278        self
279    }
280    /// <p>Optional element for UpdateCase to provide content to add additional watchers to a case.</p>
281    pub fn set_watchers_to_add(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Watcher>>) -> Self {
282        self.watchers_to_add = input;
283        self
284    }
285    /// <p>Optional element for UpdateCase to provide content to add additional watchers to a case.</p>
286    pub fn get_watchers_to_add(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Watcher>> {
287        &self.watchers_to_add
288    }
289    /// Appends an item to `watchers_to_delete`.
290    ///
291    /// To override the contents of this collection use [`set_watchers_to_delete`](Self::set_watchers_to_delete).
292    ///
293    /// <p>Optional element for UpdateCase to provide content to remove existing watchers from a case.</p>
294    pub fn watchers_to_delete(mut self, input: crate::types::Watcher) -> Self {
295        let mut v = self.watchers_to_delete.unwrap_or_default();
296        v.push(input);
297        self.watchers_to_delete = ::std::option::Option::Some(v);
298        self
299    }
300    /// <p>Optional element for UpdateCase to provide content to remove existing watchers from a case.</p>
301    pub fn set_watchers_to_delete(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Watcher>>) -> Self {
302        self.watchers_to_delete = input;
303        self
304    }
305    /// <p>Optional element for UpdateCase to provide content to remove existing watchers from a case.</p>
306    pub fn get_watchers_to_delete(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Watcher>> {
307        &self.watchers_to_delete
308    }
309    /// Appends an item to `threat_actor_ip_addresses_to_add`.
310    ///
311    /// To override the contents of this collection use [`set_threat_actor_ip_addresses_to_add`](Self::set_threat_actor_ip_addresses_to_add).
312    ///
313    /// <p>Optional element for UpdateCase to provide content to add additional suspicious IP addresses related to a case.</p>
314    pub fn threat_actor_ip_addresses_to_add(mut self, input: crate::types::ThreatActorIp) -> Self {
315        let mut v = self.threat_actor_ip_addresses_to_add.unwrap_or_default();
316        v.push(input);
317        self.threat_actor_ip_addresses_to_add = ::std::option::Option::Some(v);
318        self
319    }
320    /// <p>Optional element for UpdateCase to provide content to add additional suspicious IP addresses related to a case.</p>
321    pub fn set_threat_actor_ip_addresses_to_add(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ThreatActorIp>>) -> Self {
322        self.threat_actor_ip_addresses_to_add = input;
323        self
324    }
325    /// <p>Optional element for UpdateCase to provide content to add additional suspicious IP addresses related to a case.</p>
326    pub fn get_threat_actor_ip_addresses_to_add(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ThreatActorIp>> {
327        &self.threat_actor_ip_addresses_to_add
328    }
329    /// Appends an item to `threat_actor_ip_addresses_to_delete`.
330    ///
331    /// To override the contents of this collection use [`set_threat_actor_ip_addresses_to_delete`](Self::set_threat_actor_ip_addresses_to_delete).
332    ///
333    /// <p>Optional element for UpdateCase to provide content to remove suspicious IP addresses from a case.</p>
334    pub fn threat_actor_ip_addresses_to_delete(mut self, input: crate::types::ThreatActorIp) -> Self {
335        let mut v = self.threat_actor_ip_addresses_to_delete.unwrap_or_default();
336        v.push(input);
337        self.threat_actor_ip_addresses_to_delete = ::std::option::Option::Some(v);
338        self
339    }
340    /// <p>Optional element for UpdateCase to provide content to remove suspicious IP addresses from a case.</p>
341    pub fn set_threat_actor_ip_addresses_to_delete(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ThreatActorIp>>) -> Self {
342        self.threat_actor_ip_addresses_to_delete = input;
343        self
344    }
345    /// <p>Optional element for UpdateCase to provide content to remove suspicious IP addresses from a case.</p>
346    pub fn get_threat_actor_ip_addresses_to_delete(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ThreatActorIp>> {
347        &self.threat_actor_ip_addresses_to_delete
348    }
349    /// Appends an item to `impacted_services_to_add`.
350    ///
351    /// To override the contents of this collection use [`set_impacted_services_to_add`](Self::set_impacted_services_to_add).
352    ///
353    /// <p>Optional element for UpdateCase to provide content to add services impacted.</p>
354    pub fn impacted_services_to_add(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
355        let mut v = self.impacted_services_to_add.unwrap_or_default();
356        v.push(input.into());
357        self.impacted_services_to_add = ::std::option::Option::Some(v);
358        self
359    }
360    /// <p>Optional element for UpdateCase to provide content to add services impacted.</p>
361    pub fn set_impacted_services_to_add(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
362        self.impacted_services_to_add = input;
363        self
364    }
365    /// <p>Optional element for UpdateCase to provide content to add services impacted.</p>
366    pub fn get_impacted_services_to_add(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
367        &self.impacted_services_to_add
368    }
369    /// Appends an item to `impacted_services_to_delete`.
370    ///
371    /// To override the contents of this collection use [`set_impacted_services_to_delete`](Self::set_impacted_services_to_delete).
372    ///
373    /// <p>Optional element for UpdateCase to provide content to remove services impacted.</p>
374    pub fn impacted_services_to_delete(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
375        let mut v = self.impacted_services_to_delete.unwrap_or_default();
376        v.push(input.into());
377        self.impacted_services_to_delete = ::std::option::Option::Some(v);
378        self
379    }
380    /// <p>Optional element for UpdateCase to provide content to remove services impacted.</p>
381    pub fn set_impacted_services_to_delete(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
382        self.impacted_services_to_delete = input;
383        self
384    }
385    /// <p>Optional element for UpdateCase to provide content to remove services impacted.</p>
386    pub fn get_impacted_services_to_delete(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
387        &self.impacted_services_to_delete
388    }
389    /// Appends an item to `impacted_aws_regions_to_add`.
390    ///
391    /// To override the contents of this collection use [`set_impacted_aws_regions_to_add`](Self::set_impacted_aws_regions_to_add).
392    ///
393    /// <p>Optional element for UpdateCase to provide content to add regions impacted.</p>
394    pub fn impacted_aws_regions_to_add(mut self, input: crate::types::ImpactedAwsRegion) -> Self {
395        let mut v = self.impacted_aws_regions_to_add.unwrap_or_default();
396        v.push(input);
397        self.impacted_aws_regions_to_add = ::std::option::Option::Some(v);
398        self
399    }
400    /// <p>Optional element for UpdateCase to provide content to add regions impacted.</p>
401    pub fn set_impacted_aws_regions_to_add(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ImpactedAwsRegion>>) -> Self {
402        self.impacted_aws_regions_to_add = input;
403        self
404    }
405    /// <p>Optional element for UpdateCase to provide content to add regions impacted.</p>
406    pub fn get_impacted_aws_regions_to_add(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ImpactedAwsRegion>> {
407        &self.impacted_aws_regions_to_add
408    }
409    /// Appends an item to `impacted_aws_regions_to_delete`.
410    ///
411    /// To override the contents of this collection use [`set_impacted_aws_regions_to_delete`](Self::set_impacted_aws_regions_to_delete).
412    ///
413    /// <p>Optional element for UpdateCase to provide content to remove regions impacted.</p>
414    pub fn impacted_aws_regions_to_delete(mut self, input: crate::types::ImpactedAwsRegion) -> Self {
415        let mut v = self.impacted_aws_regions_to_delete.unwrap_or_default();
416        v.push(input);
417        self.impacted_aws_regions_to_delete = ::std::option::Option::Some(v);
418        self
419    }
420    /// <p>Optional element for UpdateCase to provide content to remove regions impacted.</p>
421    pub fn set_impacted_aws_regions_to_delete(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ImpactedAwsRegion>>) -> Self {
422        self.impacted_aws_regions_to_delete = input;
423        self
424    }
425    /// <p>Optional element for UpdateCase to provide content to remove regions impacted.</p>
426    pub fn get_impacted_aws_regions_to_delete(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ImpactedAwsRegion>> {
427        &self.impacted_aws_regions_to_delete
428    }
429    /// Appends an item to `impacted_accounts_to_add`.
430    ///
431    /// To override the contents of this collection use [`set_impacted_accounts_to_add`](Self::set_impacted_accounts_to_add).
432    ///
433    /// <p>Optional element for UpdateCase to provide content to add accounts impacted.</p><note>
434    /// <p>AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be <code>123123123</code> which is nine digits, and with zero-prepend would be <code>000123123123</code>. Not zero-prepending to 12 digits could result in errors.</p>
435    /// </note>
436    pub fn impacted_accounts_to_add(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
437        let mut v = self.impacted_accounts_to_add.unwrap_or_default();
438        v.push(input.into());
439        self.impacted_accounts_to_add = ::std::option::Option::Some(v);
440        self
441    }
442    /// <p>Optional element for UpdateCase to provide content to add accounts impacted.</p><note>
443    /// <p>AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be <code>123123123</code> which is nine digits, and with zero-prepend would be <code>000123123123</code>. Not zero-prepending to 12 digits could result in errors.</p>
444    /// </note>
445    pub fn set_impacted_accounts_to_add(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
446        self.impacted_accounts_to_add = input;
447        self
448    }
449    /// <p>Optional element for UpdateCase to provide content to add accounts impacted.</p><note>
450    /// <p>AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be <code>123123123</code> which is nine digits, and with zero-prepend would be <code>000123123123</code>. Not zero-prepending to 12 digits could result in errors.</p>
451    /// </note>
452    pub fn get_impacted_accounts_to_add(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
453        &self.impacted_accounts_to_add
454    }
455    /// Appends an item to `impacted_accounts_to_delete`.
456    ///
457    /// To override the contents of this collection use [`set_impacted_accounts_to_delete`](Self::set_impacted_accounts_to_delete).
458    ///
459    /// <p>Optional element for UpdateCase to provide content to add accounts impacted.</p><note>
460    /// <p>AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be <code>123123123</code> which is nine digits, and with zero-prepend would be <code>000123123123</code>. Not zero-prepending to 12 digits could result in errors.</p>
461    /// </note>
462    pub fn impacted_accounts_to_delete(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
463        let mut v = self.impacted_accounts_to_delete.unwrap_or_default();
464        v.push(input.into());
465        self.impacted_accounts_to_delete = ::std::option::Option::Some(v);
466        self
467    }
468    /// <p>Optional element for UpdateCase to provide content to add accounts impacted.</p><note>
469    /// <p>AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be <code>123123123</code> which is nine digits, and with zero-prepend would be <code>000123123123</code>. Not zero-prepending to 12 digits could result in errors.</p>
470    /// </note>
471    pub fn set_impacted_accounts_to_delete(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
472        self.impacted_accounts_to_delete = input;
473        self
474    }
475    /// <p>Optional element for UpdateCase to provide content to add accounts impacted.</p><note>
476    /// <p>AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be <code>123123123</code> which is nine digits, and with zero-prepend would be <code>000123123123</code>. Not zero-prepending to 12 digits could result in errors.</p>
477    /// </note>
478    pub fn get_impacted_accounts_to_delete(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
479        &self.impacted_accounts_to_delete
480    }
481    /// Consumes the builder and constructs a [`UpdateCaseInput`](crate::operation::update_case::UpdateCaseInput).
482    pub fn build(self) -> ::std::result::Result<crate::operation::update_case::UpdateCaseInput, ::aws_smithy_types::error::operation::BuildError> {
483        ::std::result::Result::Ok(crate::operation::update_case::UpdateCaseInput {
484            case_id: self.case_id,
485            title: self.title,
486            description: self.description,
487            reported_incident_start_date: self.reported_incident_start_date,
488            actual_incident_start_date: self.actual_incident_start_date,
489            engagement_type: self.engagement_type,
490            watchers_to_add: self.watchers_to_add,
491            watchers_to_delete: self.watchers_to_delete,
492            threat_actor_ip_addresses_to_add: self.threat_actor_ip_addresses_to_add,
493            threat_actor_ip_addresses_to_delete: self.threat_actor_ip_addresses_to_delete,
494            impacted_services_to_add: self.impacted_services_to_add,
495            impacted_services_to_delete: self.impacted_services_to_delete,
496            impacted_aws_regions_to_add: self.impacted_aws_regions_to_add,
497            impacted_aws_regions_to_delete: self.impacted_aws_regions_to_delete,
498            impacted_accounts_to_add: self.impacted_accounts_to_add,
499            impacted_accounts_to_delete: self.impacted_accounts_to_delete,
500        })
501    }
502}
503impl ::std::fmt::Debug for UpdateCaseInputBuilder {
504    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
505        let mut formatter = f.debug_struct("UpdateCaseInputBuilder");
506        formatter.field("case_id", &self.case_id);
507        formatter.field("title", &"*** Sensitive Data Redacted ***");
508        formatter.field("description", &"*** Sensitive Data Redacted ***");
509        formatter.field("reported_incident_start_date", &self.reported_incident_start_date);
510        formatter.field("actual_incident_start_date", &self.actual_incident_start_date);
511        formatter.field("engagement_type", &self.engagement_type);
512        formatter.field("watchers_to_add", &self.watchers_to_add);
513        formatter.field("watchers_to_delete", &self.watchers_to_delete);
514        formatter.field("threat_actor_ip_addresses_to_add", &self.threat_actor_ip_addresses_to_add);
515        formatter.field("threat_actor_ip_addresses_to_delete", &self.threat_actor_ip_addresses_to_delete);
516        formatter.field("impacted_services_to_add", &self.impacted_services_to_add);
517        formatter.field("impacted_services_to_delete", &self.impacted_services_to_delete);
518        formatter.field("impacted_aws_regions_to_add", &self.impacted_aws_regions_to_add);
519        formatter.field("impacted_aws_regions_to_delete", &self.impacted_aws_regions_to_delete);
520        formatter.field("impacted_accounts_to_add", &self.impacted_accounts_to_add);
521        formatter.field("impacted_accounts_to_delete", &self.impacted_accounts_to_delete);
522        formatter.finish()
523    }
524}