1#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct Explanation {
7 pub acl: ::std::option::Option<crate::types::AnalysisComponent>,
9 pub acl_rule: ::std::option::Option<crate::types::AnalysisAclRule>,
11 pub address: ::std::option::Option<::std::string::String>,
13 pub addresses: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
15 pub attached_to: ::std::option::Option<crate::types::AnalysisComponent>,
17 pub availability_zones: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
19 pub availability_zone_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
21 pub cidrs: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
23 pub component: ::std::option::Option<crate::types::AnalysisComponent>,
25 pub customer_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
27 pub destination: ::std::option::Option<crate::types::AnalysisComponent>,
29 pub destination_vpc: ::std::option::Option<crate::types::AnalysisComponent>,
31 pub direction: ::std::option::Option<::std::string::String>,
39 pub explanation_code: ::std::option::Option<::std::string::String>,
41 pub ingress_route_table: ::std::option::Option<crate::types::AnalysisComponent>,
43 pub internet_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
45 pub load_balancer_arn: ::std::option::Option<::std::string::String>,
47 pub classic_load_balancer_listener: ::std::option::Option<crate::types::AnalysisLoadBalancerListener>,
49 pub load_balancer_listener_port: ::std::option::Option<i32>,
51 pub load_balancer_target: ::std::option::Option<crate::types::AnalysisLoadBalancerTarget>,
53 pub load_balancer_target_group: ::std::option::Option<crate::types::AnalysisComponent>,
55 pub load_balancer_target_groups: ::std::option::Option<::std::vec::Vec<crate::types::AnalysisComponent>>,
57 pub load_balancer_target_port: ::std::option::Option<i32>,
59 pub elastic_load_balancer_listener: ::std::option::Option<crate::types::AnalysisComponent>,
61 pub missing_component: ::std::option::Option<::std::string::String>,
63 pub nat_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
65 pub network_interface: ::std::option::Option<crate::types::AnalysisComponent>,
67 pub packet_field: ::std::option::Option<::std::string::String>,
69 pub vpc_peering_connection: ::std::option::Option<crate::types::AnalysisComponent>,
71 pub port: ::std::option::Option<i32>,
73 pub port_ranges: ::std::option::Option<::std::vec::Vec<crate::types::PortRange>>,
75 pub prefix_list: ::std::option::Option<crate::types::AnalysisComponent>,
77 pub protocols: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
79 pub route_table_route: ::std::option::Option<crate::types::AnalysisRouteTableRoute>,
81 pub route_table: ::std::option::Option<crate::types::AnalysisComponent>,
83 pub security_group: ::std::option::Option<crate::types::AnalysisComponent>,
85 pub security_group_rule: ::std::option::Option<crate::types::AnalysisSecurityGroupRule>,
87 pub security_groups: ::std::option::Option<::std::vec::Vec<crate::types::AnalysisComponent>>,
89 pub source_vpc: ::std::option::Option<crate::types::AnalysisComponent>,
91 pub state: ::std::option::Option<::std::string::String>,
93 pub subnet: ::std::option::Option<crate::types::AnalysisComponent>,
95 pub subnet_route_table: ::std::option::Option<crate::types::AnalysisComponent>,
97 pub vpc: ::std::option::Option<crate::types::AnalysisComponent>,
99 pub vpc_endpoint: ::std::option::Option<crate::types::AnalysisComponent>,
101 pub vpn_connection: ::std::option::Option<crate::types::AnalysisComponent>,
103 pub vpn_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
105 pub transit_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
107 pub transit_gateway_route_table: ::std::option::Option<crate::types::AnalysisComponent>,
109 pub transit_gateway_route_table_route: ::std::option::Option<crate::types::TransitGatewayRouteTableRoute>,
111 pub transit_gateway_attachment: ::std::option::Option<crate::types::AnalysisComponent>,
113 pub component_account: ::std::option::Option<::std::string::String>,
115 pub component_region: ::std::option::Option<::std::string::String>,
117 pub firewall_stateless_rule: ::std::option::Option<crate::types::FirewallStatelessRule>,
119 pub firewall_stateful_rule: ::std::option::Option<crate::types::FirewallStatefulRule>,
121}
122impl Explanation {
123 pub fn acl(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
125 self.acl.as_ref()
126 }
127 pub fn acl_rule(&self) -> ::std::option::Option<&crate::types::AnalysisAclRule> {
129 self.acl_rule.as_ref()
130 }
131 pub fn address(&self) -> ::std::option::Option<&str> {
133 self.address.as_deref()
134 }
135 pub fn addresses(&self) -> &[::std::string::String] {
139 self.addresses.as_deref().unwrap_or_default()
140 }
141 pub fn attached_to(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
143 self.attached_to.as_ref()
144 }
145 pub fn availability_zones(&self) -> &[::std::string::String] {
149 self.availability_zones.as_deref().unwrap_or_default()
150 }
151 pub fn availability_zone_ids(&self) -> &[::std::string::String] {
155 self.availability_zone_ids.as_deref().unwrap_or_default()
156 }
157 pub fn cidrs(&self) -> &[::std::string::String] {
161 self.cidrs.as_deref().unwrap_or_default()
162 }
163 pub fn component(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
165 self.component.as_ref()
166 }
167 pub fn customer_gateway(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
169 self.customer_gateway.as_ref()
170 }
171 pub fn destination(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
173 self.destination.as_ref()
174 }
175 pub fn destination_vpc(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
177 self.destination_vpc.as_ref()
178 }
179 pub fn direction(&self) -> ::std::option::Option<&str> {
187 self.direction.as_deref()
188 }
189 pub fn explanation_code(&self) -> ::std::option::Option<&str> {
191 self.explanation_code.as_deref()
192 }
193 pub fn ingress_route_table(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
195 self.ingress_route_table.as_ref()
196 }
197 pub fn internet_gateway(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
199 self.internet_gateway.as_ref()
200 }
201 pub fn load_balancer_arn(&self) -> ::std::option::Option<&str> {
203 self.load_balancer_arn.as_deref()
204 }
205 pub fn classic_load_balancer_listener(&self) -> ::std::option::Option<&crate::types::AnalysisLoadBalancerListener> {
207 self.classic_load_balancer_listener.as_ref()
208 }
209 pub fn load_balancer_listener_port(&self) -> ::std::option::Option<i32> {
211 self.load_balancer_listener_port
212 }
213 pub fn load_balancer_target(&self) -> ::std::option::Option<&crate::types::AnalysisLoadBalancerTarget> {
215 self.load_balancer_target.as_ref()
216 }
217 pub fn load_balancer_target_group(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
219 self.load_balancer_target_group.as_ref()
220 }
221 pub fn load_balancer_target_groups(&self) -> &[crate::types::AnalysisComponent] {
225 self.load_balancer_target_groups.as_deref().unwrap_or_default()
226 }
227 pub fn load_balancer_target_port(&self) -> ::std::option::Option<i32> {
229 self.load_balancer_target_port
230 }
231 pub fn elastic_load_balancer_listener(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
233 self.elastic_load_balancer_listener.as_ref()
234 }
235 pub fn missing_component(&self) -> ::std::option::Option<&str> {
237 self.missing_component.as_deref()
238 }
239 pub fn nat_gateway(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
241 self.nat_gateway.as_ref()
242 }
243 pub fn network_interface(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
245 self.network_interface.as_ref()
246 }
247 pub fn packet_field(&self) -> ::std::option::Option<&str> {
249 self.packet_field.as_deref()
250 }
251 pub fn vpc_peering_connection(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
253 self.vpc_peering_connection.as_ref()
254 }
255 pub fn port(&self) -> ::std::option::Option<i32> {
257 self.port
258 }
259 pub fn port_ranges(&self) -> &[crate::types::PortRange] {
263 self.port_ranges.as_deref().unwrap_or_default()
264 }
265 pub fn prefix_list(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
267 self.prefix_list.as_ref()
268 }
269 pub fn protocols(&self) -> &[::std::string::String] {
273 self.protocols.as_deref().unwrap_or_default()
274 }
275 pub fn route_table_route(&self) -> ::std::option::Option<&crate::types::AnalysisRouteTableRoute> {
277 self.route_table_route.as_ref()
278 }
279 pub fn route_table(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
281 self.route_table.as_ref()
282 }
283 pub fn security_group(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
285 self.security_group.as_ref()
286 }
287 pub fn security_group_rule(&self) -> ::std::option::Option<&crate::types::AnalysisSecurityGroupRule> {
289 self.security_group_rule.as_ref()
290 }
291 pub fn security_groups(&self) -> &[crate::types::AnalysisComponent] {
295 self.security_groups.as_deref().unwrap_or_default()
296 }
297 pub fn source_vpc(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
299 self.source_vpc.as_ref()
300 }
301 pub fn state(&self) -> ::std::option::Option<&str> {
303 self.state.as_deref()
304 }
305 pub fn subnet(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
307 self.subnet.as_ref()
308 }
309 pub fn subnet_route_table(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
311 self.subnet_route_table.as_ref()
312 }
313 pub fn vpc(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
315 self.vpc.as_ref()
316 }
317 pub fn vpc_endpoint(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
319 self.vpc_endpoint.as_ref()
320 }
321 pub fn vpn_connection(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
323 self.vpn_connection.as_ref()
324 }
325 pub fn vpn_gateway(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
327 self.vpn_gateway.as_ref()
328 }
329 pub fn transit_gateway(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
331 self.transit_gateway.as_ref()
332 }
333 pub fn transit_gateway_route_table(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
335 self.transit_gateway_route_table.as_ref()
336 }
337 pub fn transit_gateway_route_table_route(&self) -> ::std::option::Option<&crate::types::TransitGatewayRouteTableRoute> {
339 self.transit_gateway_route_table_route.as_ref()
340 }
341 pub fn transit_gateway_attachment(&self) -> ::std::option::Option<&crate::types::AnalysisComponent> {
343 self.transit_gateway_attachment.as_ref()
344 }
345 pub fn component_account(&self) -> ::std::option::Option<&str> {
347 self.component_account.as_deref()
348 }
349 pub fn component_region(&self) -> ::std::option::Option<&str> {
351 self.component_region.as_deref()
352 }
353 pub fn firewall_stateless_rule(&self) -> ::std::option::Option<&crate::types::FirewallStatelessRule> {
355 self.firewall_stateless_rule.as_ref()
356 }
357 pub fn firewall_stateful_rule(&self) -> ::std::option::Option<&crate::types::FirewallStatefulRule> {
359 self.firewall_stateful_rule.as_ref()
360 }
361}
362impl Explanation {
363 pub fn builder() -> crate::types::builders::ExplanationBuilder {
365 crate::types::builders::ExplanationBuilder::default()
366 }
367}
368
369#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
371#[non_exhaustive]
372pub struct ExplanationBuilder {
373 pub(crate) acl: ::std::option::Option<crate::types::AnalysisComponent>,
374 pub(crate) acl_rule: ::std::option::Option<crate::types::AnalysisAclRule>,
375 pub(crate) address: ::std::option::Option<::std::string::String>,
376 pub(crate) addresses: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
377 pub(crate) attached_to: ::std::option::Option<crate::types::AnalysisComponent>,
378 pub(crate) availability_zones: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
379 pub(crate) availability_zone_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
380 pub(crate) cidrs: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
381 pub(crate) component: ::std::option::Option<crate::types::AnalysisComponent>,
382 pub(crate) customer_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
383 pub(crate) destination: ::std::option::Option<crate::types::AnalysisComponent>,
384 pub(crate) destination_vpc: ::std::option::Option<crate::types::AnalysisComponent>,
385 pub(crate) direction: ::std::option::Option<::std::string::String>,
386 pub(crate) explanation_code: ::std::option::Option<::std::string::String>,
387 pub(crate) ingress_route_table: ::std::option::Option<crate::types::AnalysisComponent>,
388 pub(crate) internet_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
389 pub(crate) load_balancer_arn: ::std::option::Option<::std::string::String>,
390 pub(crate) classic_load_balancer_listener: ::std::option::Option<crate::types::AnalysisLoadBalancerListener>,
391 pub(crate) load_balancer_listener_port: ::std::option::Option<i32>,
392 pub(crate) load_balancer_target: ::std::option::Option<crate::types::AnalysisLoadBalancerTarget>,
393 pub(crate) load_balancer_target_group: ::std::option::Option<crate::types::AnalysisComponent>,
394 pub(crate) load_balancer_target_groups: ::std::option::Option<::std::vec::Vec<crate::types::AnalysisComponent>>,
395 pub(crate) load_balancer_target_port: ::std::option::Option<i32>,
396 pub(crate) elastic_load_balancer_listener: ::std::option::Option<crate::types::AnalysisComponent>,
397 pub(crate) missing_component: ::std::option::Option<::std::string::String>,
398 pub(crate) nat_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
399 pub(crate) network_interface: ::std::option::Option<crate::types::AnalysisComponent>,
400 pub(crate) packet_field: ::std::option::Option<::std::string::String>,
401 pub(crate) vpc_peering_connection: ::std::option::Option<crate::types::AnalysisComponent>,
402 pub(crate) port: ::std::option::Option<i32>,
403 pub(crate) port_ranges: ::std::option::Option<::std::vec::Vec<crate::types::PortRange>>,
404 pub(crate) prefix_list: ::std::option::Option<crate::types::AnalysisComponent>,
405 pub(crate) protocols: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
406 pub(crate) route_table_route: ::std::option::Option<crate::types::AnalysisRouteTableRoute>,
407 pub(crate) route_table: ::std::option::Option<crate::types::AnalysisComponent>,
408 pub(crate) security_group: ::std::option::Option<crate::types::AnalysisComponent>,
409 pub(crate) security_group_rule: ::std::option::Option<crate::types::AnalysisSecurityGroupRule>,
410 pub(crate) security_groups: ::std::option::Option<::std::vec::Vec<crate::types::AnalysisComponent>>,
411 pub(crate) source_vpc: ::std::option::Option<crate::types::AnalysisComponent>,
412 pub(crate) state: ::std::option::Option<::std::string::String>,
413 pub(crate) subnet: ::std::option::Option<crate::types::AnalysisComponent>,
414 pub(crate) subnet_route_table: ::std::option::Option<crate::types::AnalysisComponent>,
415 pub(crate) vpc: ::std::option::Option<crate::types::AnalysisComponent>,
416 pub(crate) vpc_endpoint: ::std::option::Option<crate::types::AnalysisComponent>,
417 pub(crate) vpn_connection: ::std::option::Option<crate::types::AnalysisComponent>,
418 pub(crate) vpn_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
419 pub(crate) transit_gateway: ::std::option::Option<crate::types::AnalysisComponent>,
420 pub(crate) transit_gateway_route_table: ::std::option::Option<crate::types::AnalysisComponent>,
421 pub(crate) transit_gateway_route_table_route: ::std::option::Option<crate::types::TransitGatewayRouteTableRoute>,
422 pub(crate) transit_gateway_attachment: ::std::option::Option<crate::types::AnalysisComponent>,
423 pub(crate) component_account: ::std::option::Option<::std::string::String>,
424 pub(crate) component_region: ::std::option::Option<::std::string::String>,
425 pub(crate) firewall_stateless_rule: ::std::option::Option<crate::types::FirewallStatelessRule>,
426 pub(crate) firewall_stateful_rule: ::std::option::Option<crate::types::FirewallStatefulRule>,
427}
428impl ExplanationBuilder {
429 pub fn acl(mut self, input: crate::types::AnalysisComponent) -> Self {
431 self.acl = ::std::option::Option::Some(input);
432 self
433 }
434 pub fn set_acl(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
436 self.acl = input;
437 self
438 }
439 pub fn get_acl(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
441 &self.acl
442 }
443 pub fn acl_rule(mut self, input: crate::types::AnalysisAclRule) -> Self {
445 self.acl_rule = ::std::option::Option::Some(input);
446 self
447 }
448 pub fn set_acl_rule(mut self, input: ::std::option::Option<crate::types::AnalysisAclRule>) -> Self {
450 self.acl_rule = input;
451 self
452 }
453 pub fn get_acl_rule(&self) -> &::std::option::Option<crate::types::AnalysisAclRule> {
455 &self.acl_rule
456 }
457 pub fn address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
459 self.address = ::std::option::Option::Some(input.into());
460 self
461 }
462 pub fn set_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
464 self.address = input;
465 self
466 }
467 pub fn get_address(&self) -> &::std::option::Option<::std::string::String> {
469 &self.address
470 }
471 pub fn addresses(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
477 let mut v = self.addresses.unwrap_or_default();
478 v.push(input.into());
479 self.addresses = ::std::option::Option::Some(v);
480 self
481 }
482 pub fn set_addresses(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
484 self.addresses = input;
485 self
486 }
487 pub fn get_addresses(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
489 &self.addresses
490 }
491 pub fn attached_to(mut self, input: crate::types::AnalysisComponent) -> Self {
493 self.attached_to = ::std::option::Option::Some(input);
494 self
495 }
496 pub fn set_attached_to(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
498 self.attached_to = input;
499 self
500 }
501 pub fn get_attached_to(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
503 &self.attached_to
504 }
505 pub fn availability_zones(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
511 let mut v = self.availability_zones.unwrap_or_default();
512 v.push(input.into());
513 self.availability_zones = ::std::option::Option::Some(v);
514 self
515 }
516 pub fn set_availability_zones(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
518 self.availability_zones = input;
519 self
520 }
521 pub fn get_availability_zones(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
523 &self.availability_zones
524 }
525 pub fn availability_zone_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
531 let mut v = self.availability_zone_ids.unwrap_or_default();
532 v.push(input.into());
533 self.availability_zone_ids = ::std::option::Option::Some(v);
534 self
535 }
536 pub fn set_availability_zone_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
538 self.availability_zone_ids = input;
539 self
540 }
541 pub fn get_availability_zone_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
543 &self.availability_zone_ids
544 }
545 pub fn cidrs(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
551 let mut v = self.cidrs.unwrap_or_default();
552 v.push(input.into());
553 self.cidrs = ::std::option::Option::Some(v);
554 self
555 }
556 pub fn set_cidrs(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
558 self.cidrs = input;
559 self
560 }
561 pub fn get_cidrs(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
563 &self.cidrs
564 }
565 pub fn component(mut self, input: crate::types::AnalysisComponent) -> Self {
567 self.component = ::std::option::Option::Some(input);
568 self
569 }
570 pub fn set_component(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
572 self.component = input;
573 self
574 }
575 pub fn get_component(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
577 &self.component
578 }
579 pub fn customer_gateway(mut self, input: crate::types::AnalysisComponent) -> Self {
581 self.customer_gateway = ::std::option::Option::Some(input);
582 self
583 }
584 pub fn set_customer_gateway(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
586 self.customer_gateway = input;
587 self
588 }
589 pub fn get_customer_gateway(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
591 &self.customer_gateway
592 }
593 pub fn destination(mut self, input: crate::types::AnalysisComponent) -> Self {
595 self.destination = ::std::option::Option::Some(input);
596 self
597 }
598 pub fn set_destination(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
600 self.destination = input;
601 self
602 }
603 pub fn get_destination(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
605 &self.destination
606 }
607 pub fn destination_vpc(mut self, input: crate::types::AnalysisComponent) -> Self {
609 self.destination_vpc = ::std::option::Option::Some(input);
610 self
611 }
612 pub fn set_destination_vpc(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
614 self.destination_vpc = input;
615 self
616 }
617 pub fn get_destination_vpc(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
619 &self.destination_vpc
620 }
621 pub fn direction(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
629 self.direction = ::std::option::Option::Some(input.into());
630 self
631 }
632 pub fn set_direction(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
640 self.direction = input;
641 self
642 }
643 pub fn get_direction(&self) -> &::std::option::Option<::std::string::String> {
651 &self.direction
652 }
653 pub fn explanation_code(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
655 self.explanation_code = ::std::option::Option::Some(input.into());
656 self
657 }
658 pub fn set_explanation_code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
660 self.explanation_code = input;
661 self
662 }
663 pub fn get_explanation_code(&self) -> &::std::option::Option<::std::string::String> {
665 &self.explanation_code
666 }
667 pub fn ingress_route_table(mut self, input: crate::types::AnalysisComponent) -> Self {
669 self.ingress_route_table = ::std::option::Option::Some(input);
670 self
671 }
672 pub fn set_ingress_route_table(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
674 self.ingress_route_table = input;
675 self
676 }
677 pub fn get_ingress_route_table(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
679 &self.ingress_route_table
680 }
681 pub fn internet_gateway(mut self, input: crate::types::AnalysisComponent) -> Self {
683 self.internet_gateway = ::std::option::Option::Some(input);
684 self
685 }
686 pub fn set_internet_gateway(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
688 self.internet_gateway = input;
689 self
690 }
691 pub fn get_internet_gateway(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
693 &self.internet_gateway
694 }
695 pub fn load_balancer_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
697 self.load_balancer_arn = ::std::option::Option::Some(input.into());
698 self
699 }
700 pub fn set_load_balancer_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
702 self.load_balancer_arn = input;
703 self
704 }
705 pub fn get_load_balancer_arn(&self) -> &::std::option::Option<::std::string::String> {
707 &self.load_balancer_arn
708 }
709 pub fn classic_load_balancer_listener(mut self, input: crate::types::AnalysisLoadBalancerListener) -> Self {
711 self.classic_load_balancer_listener = ::std::option::Option::Some(input);
712 self
713 }
714 pub fn set_classic_load_balancer_listener(mut self, input: ::std::option::Option<crate::types::AnalysisLoadBalancerListener>) -> Self {
716 self.classic_load_balancer_listener = input;
717 self
718 }
719 pub fn get_classic_load_balancer_listener(&self) -> &::std::option::Option<crate::types::AnalysisLoadBalancerListener> {
721 &self.classic_load_balancer_listener
722 }
723 pub fn load_balancer_listener_port(mut self, input: i32) -> Self {
725 self.load_balancer_listener_port = ::std::option::Option::Some(input);
726 self
727 }
728 pub fn set_load_balancer_listener_port(mut self, input: ::std::option::Option<i32>) -> Self {
730 self.load_balancer_listener_port = input;
731 self
732 }
733 pub fn get_load_balancer_listener_port(&self) -> &::std::option::Option<i32> {
735 &self.load_balancer_listener_port
736 }
737 pub fn load_balancer_target(mut self, input: crate::types::AnalysisLoadBalancerTarget) -> Self {
739 self.load_balancer_target = ::std::option::Option::Some(input);
740 self
741 }
742 pub fn set_load_balancer_target(mut self, input: ::std::option::Option<crate::types::AnalysisLoadBalancerTarget>) -> Self {
744 self.load_balancer_target = input;
745 self
746 }
747 pub fn get_load_balancer_target(&self) -> &::std::option::Option<crate::types::AnalysisLoadBalancerTarget> {
749 &self.load_balancer_target
750 }
751 pub fn load_balancer_target_group(mut self, input: crate::types::AnalysisComponent) -> Self {
753 self.load_balancer_target_group = ::std::option::Option::Some(input);
754 self
755 }
756 pub fn set_load_balancer_target_group(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
758 self.load_balancer_target_group = input;
759 self
760 }
761 pub fn get_load_balancer_target_group(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
763 &self.load_balancer_target_group
764 }
765 pub fn load_balancer_target_groups(mut self, input: crate::types::AnalysisComponent) -> Self {
771 let mut v = self.load_balancer_target_groups.unwrap_or_default();
772 v.push(input);
773 self.load_balancer_target_groups = ::std::option::Option::Some(v);
774 self
775 }
776 pub fn set_load_balancer_target_groups(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AnalysisComponent>>) -> Self {
778 self.load_balancer_target_groups = input;
779 self
780 }
781 pub fn get_load_balancer_target_groups(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AnalysisComponent>> {
783 &self.load_balancer_target_groups
784 }
785 pub fn load_balancer_target_port(mut self, input: i32) -> Self {
787 self.load_balancer_target_port = ::std::option::Option::Some(input);
788 self
789 }
790 pub fn set_load_balancer_target_port(mut self, input: ::std::option::Option<i32>) -> Self {
792 self.load_balancer_target_port = input;
793 self
794 }
795 pub fn get_load_balancer_target_port(&self) -> &::std::option::Option<i32> {
797 &self.load_balancer_target_port
798 }
799 pub fn elastic_load_balancer_listener(mut self, input: crate::types::AnalysisComponent) -> Self {
801 self.elastic_load_balancer_listener = ::std::option::Option::Some(input);
802 self
803 }
804 pub fn set_elastic_load_balancer_listener(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
806 self.elastic_load_balancer_listener = input;
807 self
808 }
809 pub fn get_elastic_load_balancer_listener(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
811 &self.elastic_load_balancer_listener
812 }
813 pub fn missing_component(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
815 self.missing_component = ::std::option::Option::Some(input.into());
816 self
817 }
818 pub fn set_missing_component(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
820 self.missing_component = input;
821 self
822 }
823 pub fn get_missing_component(&self) -> &::std::option::Option<::std::string::String> {
825 &self.missing_component
826 }
827 pub fn nat_gateway(mut self, input: crate::types::AnalysisComponent) -> Self {
829 self.nat_gateway = ::std::option::Option::Some(input);
830 self
831 }
832 pub fn set_nat_gateway(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
834 self.nat_gateway = input;
835 self
836 }
837 pub fn get_nat_gateway(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
839 &self.nat_gateway
840 }
841 pub fn network_interface(mut self, input: crate::types::AnalysisComponent) -> Self {
843 self.network_interface = ::std::option::Option::Some(input);
844 self
845 }
846 pub fn set_network_interface(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
848 self.network_interface = input;
849 self
850 }
851 pub fn get_network_interface(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
853 &self.network_interface
854 }
855 pub fn packet_field(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
857 self.packet_field = ::std::option::Option::Some(input.into());
858 self
859 }
860 pub fn set_packet_field(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
862 self.packet_field = input;
863 self
864 }
865 pub fn get_packet_field(&self) -> &::std::option::Option<::std::string::String> {
867 &self.packet_field
868 }
869 pub fn vpc_peering_connection(mut self, input: crate::types::AnalysisComponent) -> Self {
871 self.vpc_peering_connection = ::std::option::Option::Some(input);
872 self
873 }
874 pub fn set_vpc_peering_connection(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
876 self.vpc_peering_connection = input;
877 self
878 }
879 pub fn get_vpc_peering_connection(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
881 &self.vpc_peering_connection
882 }
883 pub fn port(mut self, input: i32) -> Self {
885 self.port = ::std::option::Option::Some(input);
886 self
887 }
888 pub fn set_port(mut self, input: ::std::option::Option<i32>) -> Self {
890 self.port = input;
891 self
892 }
893 pub fn get_port(&self) -> &::std::option::Option<i32> {
895 &self.port
896 }
897 pub fn port_ranges(mut self, input: crate::types::PortRange) -> Self {
903 let mut v = self.port_ranges.unwrap_or_default();
904 v.push(input);
905 self.port_ranges = ::std::option::Option::Some(v);
906 self
907 }
908 pub fn set_port_ranges(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PortRange>>) -> Self {
910 self.port_ranges = input;
911 self
912 }
913 pub fn get_port_ranges(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PortRange>> {
915 &self.port_ranges
916 }
917 pub fn prefix_list(mut self, input: crate::types::AnalysisComponent) -> Self {
919 self.prefix_list = ::std::option::Option::Some(input);
920 self
921 }
922 pub fn set_prefix_list(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
924 self.prefix_list = input;
925 self
926 }
927 pub fn get_prefix_list(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
929 &self.prefix_list
930 }
931 pub fn protocols(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
937 let mut v = self.protocols.unwrap_or_default();
938 v.push(input.into());
939 self.protocols = ::std::option::Option::Some(v);
940 self
941 }
942 pub fn set_protocols(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
944 self.protocols = input;
945 self
946 }
947 pub fn get_protocols(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
949 &self.protocols
950 }
951 pub fn route_table_route(mut self, input: crate::types::AnalysisRouteTableRoute) -> Self {
953 self.route_table_route = ::std::option::Option::Some(input);
954 self
955 }
956 pub fn set_route_table_route(mut self, input: ::std::option::Option<crate::types::AnalysisRouteTableRoute>) -> Self {
958 self.route_table_route = input;
959 self
960 }
961 pub fn get_route_table_route(&self) -> &::std::option::Option<crate::types::AnalysisRouteTableRoute> {
963 &self.route_table_route
964 }
965 pub fn route_table(mut self, input: crate::types::AnalysisComponent) -> Self {
967 self.route_table = ::std::option::Option::Some(input);
968 self
969 }
970 pub fn set_route_table(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
972 self.route_table = input;
973 self
974 }
975 pub fn get_route_table(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
977 &self.route_table
978 }
979 pub fn security_group(mut self, input: crate::types::AnalysisComponent) -> Self {
981 self.security_group = ::std::option::Option::Some(input);
982 self
983 }
984 pub fn set_security_group(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
986 self.security_group = input;
987 self
988 }
989 pub fn get_security_group(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
991 &self.security_group
992 }
993 pub fn security_group_rule(mut self, input: crate::types::AnalysisSecurityGroupRule) -> Self {
995 self.security_group_rule = ::std::option::Option::Some(input);
996 self
997 }
998 pub fn set_security_group_rule(mut self, input: ::std::option::Option<crate::types::AnalysisSecurityGroupRule>) -> Self {
1000 self.security_group_rule = input;
1001 self
1002 }
1003 pub fn get_security_group_rule(&self) -> &::std::option::Option<crate::types::AnalysisSecurityGroupRule> {
1005 &self.security_group_rule
1006 }
1007 pub fn security_groups(mut self, input: crate::types::AnalysisComponent) -> Self {
1013 let mut v = self.security_groups.unwrap_or_default();
1014 v.push(input);
1015 self.security_groups = ::std::option::Option::Some(v);
1016 self
1017 }
1018 pub fn set_security_groups(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AnalysisComponent>>) -> Self {
1020 self.security_groups = input;
1021 self
1022 }
1023 pub fn get_security_groups(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AnalysisComponent>> {
1025 &self.security_groups
1026 }
1027 pub fn source_vpc(mut self, input: crate::types::AnalysisComponent) -> Self {
1029 self.source_vpc = ::std::option::Option::Some(input);
1030 self
1031 }
1032 pub fn set_source_vpc(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
1034 self.source_vpc = input;
1035 self
1036 }
1037 pub fn get_source_vpc(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
1039 &self.source_vpc
1040 }
1041 pub fn state(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1043 self.state = ::std::option::Option::Some(input.into());
1044 self
1045 }
1046 pub fn set_state(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1048 self.state = input;
1049 self
1050 }
1051 pub fn get_state(&self) -> &::std::option::Option<::std::string::String> {
1053 &self.state
1054 }
1055 pub fn subnet(mut self, input: crate::types::AnalysisComponent) -> Self {
1057 self.subnet = ::std::option::Option::Some(input);
1058 self
1059 }
1060 pub fn set_subnet(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
1062 self.subnet = input;
1063 self
1064 }
1065 pub fn get_subnet(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
1067 &self.subnet
1068 }
1069 pub fn subnet_route_table(mut self, input: crate::types::AnalysisComponent) -> Self {
1071 self.subnet_route_table = ::std::option::Option::Some(input);
1072 self
1073 }
1074 pub fn set_subnet_route_table(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
1076 self.subnet_route_table = input;
1077 self
1078 }
1079 pub fn get_subnet_route_table(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
1081 &self.subnet_route_table
1082 }
1083 pub fn vpc(mut self, input: crate::types::AnalysisComponent) -> Self {
1085 self.vpc = ::std::option::Option::Some(input);
1086 self
1087 }
1088 pub fn set_vpc(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
1090 self.vpc = input;
1091 self
1092 }
1093 pub fn get_vpc(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
1095 &self.vpc
1096 }
1097 pub fn vpc_endpoint(mut self, input: crate::types::AnalysisComponent) -> Self {
1099 self.vpc_endpoint = ::std::option::Option::Some(input);
1100 self
1101 }
1102 pub fn set_vpc_endpoint(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
1104 self.vpc_endpoint = input;
1105 self
1106 }
1107 pub fn get_vpc_endpoint(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
1109 &self.vpc_endpoint
1110 }
1111 pub fn vpn_connection(mut self, input: crate::types::AnalysisComponent) -> Self {
1113 self.vpn_connection = ::std::option::Option::Some(input);
1114 self
1115 }
1116 pub fn set_vpn_connection(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
1118 self.vpn_connection = input;
1119 self
1120 }
1121 pub fn get_vpn_connection(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
1123 &self.vpn_connection
1124 }
1125 pub fn vpn_gateway(mut self, input: crate::types::AnalysisComponent) -> Self {
1127 self.vpn_gateway = ::std::option::Option::Some(input);
1128 self
1129 }
1130 pub fn set_vpn_gateway(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
1132 self.vpn_gateway = input;
1133 self
1134 }
1135 pub fn get_vpn_gateway(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
1137 &self.vpn_gateway
1138 }
1139 pub fn transit_gateway(mut self, input: crate::types::AnalysisComponent) -> Self {
1141 self.transit_gateway = ::std::option::Option::Some(input);
1142 self
1143 }
1144 pub fn set_transit_gateway(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
1146 self.transit_gateway = input;
1147 self
1148 }
1149 pub fn get_transit_gateway(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
1151 &self.transit_gateway
1152 }
1153 pub fn transit_gateway_route_table(mut self, input: crate::types::AnalysisComponent) -> Self {
1155 self.transit_gateway_route_table = ::std::option::Option::Some(input);
1156 self
1157 }
1158 pub fn set_transit_gateway_route_table(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
1160 self.transit_gateway_route_table = input;
1161 self
1162 }
1163 pub fn get_transit_gateway_route_table(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
1165 &self.transit_gateway_route_table
1166 }
1167 pub fn transit_gateway_route_table_route(mut self, input: crate::types::TransitGatewayRouteTableRoute) -> Self {
1169 self.transit_gateway_route_table_route = ::std::option::Option::Some(input);
1170 self
1171 }
1172 pub fn set_transit_gateway_route_table_route(mut self, input: ::std::option::Option<crate::types::TransitGatewayRouteTableRoute>) -> Self {
1174 self.transit_gateway_route_table_route = input;
1175 self
1176 }
1177 pub fn get_transit_gateway_route_table_route(&self) -> &::std::option::Option<crate::types::TransitGatewayRouteTableRoute> {
1179 &self.transit_gateway_route_table_route
1180 }
1181 pub fn transit_gateway_attachment(mut self, input: crate::types::AnalysisComponent) -> Self {
1183 self.transit_gateway_attachment = ::std::option::Option::Some(input);
1184 self
1185 }
1186 pub fn set_transit_gateway_attachment(mut self, input: ::std::option::Option<crate::types::AnalysisComponent>) -> Self {
1188 self.transit_gateway_attachment = input;
1189 self
1190 }
1191 pub fn get_transit_gateway_attachment(&self) -> &::std::option::Option<crate::types::AnalysisComponent> {
1193 &self.transit_gateway_attachment
1194 }
1195 pub fn component_account(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1197 self.component_account = ::std::option::Option::Some(input.into());
1198 self
1199 }
1200 pub fn set_component_account(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1202 self.component_account = input;
1203 self
1204 }
1205 pub fn get_component_account(&self) -> &::std::option::Option<::std::string::String> {
1207 &self.component_account
1208 }
1209 pub fn component_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1211 self.component_region = ::std::option::Option::Some(input.into());
1212 self
1213 }
1214 pub fn set_component_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1216 self.component_region = input;
1217 self
1218 }
1219 pub fn get_component_region(&self) -> &::std::option::Option<::std::string::String> {
1221 &self.component_region
1222 }
1223 pub fn firewall_stateless_rule(mut self, input: crate::types::FirewallStatelessRule) -> Self {
1225 self.firewall_stateless_rule = ::std::option::Option::Some(input);
1226 self
1227 }
1228 pub fn set_firewall_stateless_rule(mut self, input: ::std::option::Option<crate::types::FirewallStatelessRule>) -> Self {
1230 self.firewall_stateless_rule = input;
1231 self
1232 }
1233 pub fn get_firewall_stateless_rule(&self) -> &::std::option::Option<crate::types::FirewallStatelessRule> {
1235 &self.firewall_stateless_rule
1236 }
1237 pub fn firewall_stateful_rule(mut self, input: crate::types::FirewallStatefulRule) -> Self {
1239 self.firewall_stateful_rule = ::std::option::Option::Some(input);
1240 self
1241 }
1242 pub fn set_firewall_stateful_rule(mut self, input: ::std::option::Option<crate::types::FirewallStatefulRule>) -> Self {
1244 self.firewall_stateful_rule = input;
1245 self
1246 }
1247 pub fn get_firewall_stateful_rule(&self) -> &::std::option::Option<crate::types::FirewallStatefulRule> {
1249 &self.firewall_stateful_rule
1250 }
1251 pub fn build(self) -> crate::types::Explanation {
1253 crate::types::Explanation {
1254 acl: self.acl,
1255 acl_rule: self.acl_rule,
1256 address: self.address,
1257 addresses: self.addresses,
1258 attached_to: self.attached_to,
1259 availability_zones: self.availability_zones,
1260 availability_zone_ids: self.availability_zone_ids,
1261 cidrs: self.cidrs,
1262 component: self.component,
1263 customer_gateway: self.customer_gateway,
1264 destination: self.destination,
1265 destination_vpc: self.destination_vpc,
1266 direction: self.direction,
1267 explanation_code: self.explanation_code,
1268 ingress_route_table: self.ingress_route_table,
1269 internet_gateway: self.internet_gateway,
1270 load_balancer_arn: self.load_balancer_arn,
1271 classic_load_balancer_listener: self.classic_load_balancer_listener,
1272 load_balancer_listener_port: self.load_balancer_listener_port,
1273 load_balancer_target: self.load_balancer_target,
1274 load_balancer_target_group: self.load_balancer_target_group,
1275 load_balancer_target_groups: self.load_balancer_target_groups,
1276 load_balancer_target_port: self.load_balancer_target_port,
1277 elastic_load_balancer_listener: self.elastic_load_balancer_listener,
1278 missing_component: self.missing_component,
1279 nat_gateway: self.nat_gateway,
1280 network_interface: self.network_interface,
1281 packet_field: self.packet_field,
1282 vpc_peering_connection: self.vpc_peering_connection,
1283 port: self.port,
1284 port_ranges: self.port_ranges,
1285 prefix_list: self.prefix_list,
1286 protocols: self.protocols,
1287 route_table_route: self.route_table_route,
1288 route_table: self.route_table,
1289 security_group: self.security_group,
1290 security_group_rule: self.security_group_rule,
1291 security_groups: self.security_groups,
1292 source_vpc: self.source_vpc,
1293 state: self.state,
1294 subnet: self.subnet,
1295 subnet_route_table: self.subnet_route_table,
1296 vpc: self.vpc,
1297 vpc_endpoint: self.vpc_endpoint,
1298 vpn_connection: self.vpn_connection,
1299 vpn_gateway: self.vpn_gateway,
1300 transit_gateway: self.transit_gateway,
1301 transit_gateway_route_table: self.transit_gateway_route_table,
1302 transit_gateway_route_table_route: self.transit_gateway_route_table_route,
1303 transit_gateway_attachment: self.transit_gateway_attachment,
1304 component_account: self.component_account,
1305 component_region: self.component_region,
1306 firewall_stateless_rule: self.firewall_stateless_rule,
1307 firewall_stateful_rule: self.firewall_stateful_rule,
1308 }
1309 }
1310}