aws_sdk_ec2/types/
_firewall_stateful_rule.rs1#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct FirewallStatefulRule {
7 pub rule_group_arn: ::std::option::Option<::std::string::String>,
9 pub sources: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
11 pub destinations: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
13 pub source_ports: ::std::option::Option<::std::vec::Vec<crate::types::PortRange>>,
15 pub destination_ports: ::std::option::Option<::std::vec::Vec<crate::types::PortRange>>,
17 pub protocol: ::std::option::Option<::std::string::String>,
19 pub rule_action: ::std::option::Option<::std::string::String>,
21 pub direction: ::std::option::Option<::std::string::String>,
23}
24impl FirewallStatefulRule {
25 pub fn rule_group_arn(&self) -> ::std::option::Option<&str> {
27 self.rule_group_arn.as_deref()
28 }
29 pub fn sources(&self) -> &[::std::string::String] {
33 self.sources.as_deref().unwrap_or_default()
34 }
35 pub fn destinations(&self) -> &[::std::string::String] {
39 self.destinations.as_deref().unwrap_or_default()
40 }
41 pub fn source_ports(&self) -> &[crate::types::PortRange] {
45 self.source_ports.as_deref().unwrap_or_default()
46 }
47 pub fn destination_ports(&self) -> &[crate::types::PortRange] {
51 self.destination_ports.as_deref().unwrap_or_default()
52 }
53 pub fn protocol(&self) -> ::std::option::Option<&str> {
55 self.protocol.as_deref()
56 }
57 pub fn rule_action(&self) -> ::std::option::Option<&str> {
59 self.rule_action.as_deref()
60 }
61 pub fn direction(&self) -> ::std::option::Option<&str> {
63 self.direction.as_deref()
64 }
65}
66impl FirewallStatefulRule {
67 pub fn builder() -> crate::types::builders::FirewallStatefulRuleBuilder {
69 crate::types::builders::FirewallStatefulRuleBuilder::default()
70 }
71}
72
73#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
75#[non_exhaustive]
76pub struct FirewallStatefulRuleBuilder {
77 pub(crate) rule_group_arn: ::std::option::Option<::std::string::String>,
78 pub(crate) sources: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
79 pub(crate) destinations: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
80 pub(crate) source_ports: ::std::option::Option<::std::vec::Vec<crate::types::PortRange>>,
81 pub(crate) destination_ports: ::std::option::Option<::std::vec::Vec<crate::types::PortRange>>,
82 pub(crate) protocol: ::std::option::Option<::std::string::String>,
83 pub(crate) rule_action: ::std::option::Option<::std::string::String>,
84 pub(crate) direction: ::std::option::Option<::std::string::String>,
85}
86impl FirewallStatefulRuleBuilder {
87 pub fn rule_group_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
89 self.rule_group_arn = ::std::option::Option::Some(input.into());
90 self
91 }
92 pub fn set_rule_group_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
94 self.rule_group_arn = input;
95 self
96 }
97 pub fn get_rule_group_arn(&self) -> &::std::option::Option<::std::string::String> {
99 &self.rule_group_arn
100 }
101 pub fn sources(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
107 let mut v = self.sources.unwrap_or_default();
108 v.push(input.into());
109 self.sources = ::std::option::Option::Some(v);
110 self
111 }
112 pub fn set_sources(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
114 self.sources = input;
115 self
116 }
117 pub fn get_sources(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
119 &self.sources
120 }
121 pub fn destinations(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127 let mut v = self.destinations.unwrap_or_default();
128 v.push(input.into());
129 self.destinations = ::std::option::Option::Some(v);
130 self
131 }
132 pub fn set_destinations(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
134 self.destinations = input;
135 self
136 }
137 pub fn get_destinations(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
139 &self.destinations
140 }
141 pub fn source_ports(mut self, input: crate::types::PortRange) -> Self {
147 let mut v = self.source_ports.unwrap_or_default();
148 v.push(input);
149 self.source_ports = ::std::option::Option::Some(v);
150 self
151 }
152 pub fn set_source_ports(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PortRange>>) -> Self {
154 self.source_ports = input;
155 self
156 }
157 pub fn get_source_ports(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PortRange>> {
159 &self.source_ports
160 }
161 pub fn destination_ports(mut self, input: crate::types::PortRange) -> Self {
167 let mut v = self.destination_ports.unwrap_or_default();
168 v.push(input);
169 self.destination_ports = ::std::option::Option::Some(v);
170 self
171 }
172 pub fn set_destination_ports(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PortRange>>) -> Self {
174 self.destination_ports = input;
175 self
176 }
177 pub fn get_destination_ports(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PortRange>> {
179 &self.destination_ports
180 }
181 pub fn protocol(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
183 self.protocol = ::std::option::Option::Some(input.into());
184 self
185 }
186 pub fn set_protocol(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
188 self.protocol = input;
189 self
190 }
191 pub fn get_protocol(&self) -> &::std::option::Option<::std::string::String> {
193 &self.protocol
194 }
195 pub fn rule_action(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
197 self.rule_action = ::std::option::Option::Some(input.into());
198 self
199 }
200 pub fn set_rule_action(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
202 self.rule_action = input;
203 self
204 }
205 pub fn get_rule_action(&self) -> &::std::option::Option<::std::string::String> {
207 &self.rule_action
208 }
209 pub fn direction(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
211 self.direction = ::std::option::Option::Some(input.into());
212 self
213 }
214 pub fn set_direction(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
216 self.direction = input;
217 self
218 }
219 pub fn get_direction(&self) -> &::std::option::Option<::std::string::String> {
221 &self.direction
222 }
223 pub fn build(self) -> crate::types::FirewallStatefulRule {
225 crate::types::FirewallStatefulRule {
226 rule_group_arn: self.rule_group_arn,
227 sources: self.sources,
228 destinations: self.destinations,
229 source_ports: self.source_ports,
230 destination_ports: self.destination_ports,
231 protocol: self.protocol,
232 rule_action: self.rule_action,
233 direction: self.direction,
234 }
235 }
236}