1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>Defines a Firewall Manager network ACL policy. This is used in the <code>PolicyOption</code> of a <code>SecurityServicePolicyData</code> for a <code>Policy</code>, when the <code>SecurityServicePolicyData</code> type is set to <code>NETWORK_ACL_COMMON</code>.</p>
/// <p>For information about network ACLs, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html">Control traffic to subnets using network ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct NetworkAclCommonPolicy {
    /// <p>The definition of the first and last rules for the network ACL policy.</p>
    pub network_acl_entry_set: ::std::option::Option<crate::types::NetworkAclEntrySet>,
}
impl NetworkAclCommonPolicy {
    /// <p>The definition of the first and last rules for the network ACL policy.</p>
    pub fn network_acl_entry_set(&self) -> ::std::option::Option<&crate::types::NetworkAclEntrySet> {
        self.network_acl_entry_set.as_ref()
    }
}
impl NetworkAclCommonPolicy {
    /// Creates a new builder-style object to manufacture [`NetworkAclCommonPolicy`](crate::types::NetworkAclCommonPolicy).
    pub fn builder() -> crate::types::builders::NetworkAclCommonPolicyBuilder {
        crate::types::builders::NetworkAclCommonPolicyBuilder::default()
    }
}

/// A builder for [`NetworkAclCommonPolicy`](crate::types::NetworkAclCommonPolicy).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct NetworkAclCommonPolicyBuilder {
    pub(crate) network_acl_entry_set: ::std::option::Option<crate::types::NetworkAclEntrySet>,
}
impl NetworkAclCommonPolicyBuilder {
    /// <p>The definition of the first and last rules for the network ACL policy.</p>
    /// This field is required.
    pub fn network_acl_entry_set(mut self, input: crate::types::NetworkAclEntrySet) -> Self {
        self.network_acl_entry_set = ::std::option::Option::Some(input);
        self
    }
    /// <p>The definition of the first and last rules for the network ACL policy.</p>
    pub fn set_network_acl_entry_set(mut self, input: ::std::option::Option<crate::types::NetworkAclEntrySet>) -> Self {
        self.network_acl_entry_set = input;
        self
    }
    /// <p>The definition of the first and last rules for the network ACL policy.</p>
    pub fn get_network_acl_entry_set(&self) -> &::std::option::Option<crate::types::NetworkAclEntrySet> {
        &self.network_acl_entry_set
    }
    /// Consumes the builder and constructs a [`NetworkAclCommonPolicy`](crate::types::NetworkAclCommonPolicy).
    pub fn build(self) -> crate::types::NetworkAclCommonPolicy {
        crate::types::NetworkAclCommonPolicy {
            network_acl_entry_set: self.network_acl_entry_set,
        }
    }
}