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