Interface Acls

  • All Superinterfaces:
    Augmentable<Acls>, BindingObject, ChildOf<IetfAccessControlListData>, DataContainer, DataObject

    @Generated("mdsal-binding-generator")
    public interface Acls
    extends ChildOf<IetfAccessControlListData>, Augmentable<Acls>
    This is a top-level container for Access Control Lists. It can have one or more acl nodes.

    This class represents the following YANG schema fragment defined in module ietf-access-control-list

     container acls {
       list acl {
         key name;
         leaf name {
           type string {
             length 1..64;
           }
         }
         leaf type {
           type acl-type;
         }
         container aces {
           list ace {
             key name;
             ordered-by user;
             leaf name {
               type string {
                 length 1..64;
               }
             }
             container matches {
               choice l2 {
                 case eth {
                   container eth {
                     when "derived-from-or-self(/acls/acl/type, 'acl:eth-acl-type')";
                     if-feature match-on-eth;
                     uses pf:acl-eth-header-fields;
                   }
                 }
               }
               choice l3 {
                 case ipv4 {
                   container ipv4 {
                     when "derived-from-or-self(/acls/acl/type, 'acl:ipv4-acl-type')";
                     if-feature match-on-ipv4;
                     uses pf:acl-ip-header-fields;
                     uses pf:acl-ipv4-header-fields;
                   }
                 }
                 case ipv6 {
                   container ipv6 {
                     when "derived-from-or-self(/acls/acl/type, 'acl:ipv6-acl-type')";
                     if-feature match-on-ipv6;
                     uses pf:acl-ip-header-fields;
                     uses pf:acl-ipv6-header-fields;
                   }
                 }
               }
               choice l4 {
                 case tcp {
                   container tcp {
                     if-feature match-on-tcp;
                     uses pf:acl-tcp-header-fields;
                     container source-port {
                       choice source-port {
                         case range-or-operator {
                           uses pf:port-range-or-operator;
                         }
                       }
                     }
                     container destination-port {
                       choice destination-port {
                         case range-or-operator {
                           uses pf:port-range-or-operator;
                         }
                       }
                     }
                   }
                 }
                 case udp {
                   container udp {
                     if-feature match-on-udp;
                     uses pf:acl-udp-header-fields;
                     container source-port {
                       choice source-port {
                         case range-or-operator {
                           uses pf:port-range-or-operator;
                         }
                       }
                     }
                     container destination-port {
                       choice destination-port {
                         case range-or-operator {
                           uses pf:port-range-or-operator;
                         }
                       }
                     }
                   }
                 }
                 case icmp {
                   container icmp {
                     if-feature match-on-icmp;
                     uses pf:acl-icmp-header-fields;
                   }
                 }
               }
               leaf egress-interface {
                 type if:interface-ref;
               }
               leaf ingress-interface {
                 type if:interface-ref;
               }
             }
             container actions {
               leaf forwarding {
                 type identityref {
                   base forwarding-action;
                 }
               }
               leaf logging {
                 type identityref {
                   base log-action;
                 }
                 default log-none;
               }
             }
             container statistics {
               if-feature acl-aggregate-stats;
               config false;
               uses acl-counters;
             }
           }
         }
       }
       container attachment-points {
         grouping interface-acl {
           container acl-sets {
             list acl-set {
               key name;
               ordered-by user;
               leaf name {
                 type leafref {
                   path /acls/acl/name;
                 }
               }
               list ace-statistics {
                 if-feature interface-stats;
                 key name;
                 config false;
                 leaf name {
                   type leafref {
                     path /acls/acl/aces/ace/name;
                   }
                 }
                 uses acl-counters;
               }
             }
           }
         }
         list interface {
           if-feature interface-attachment;
           key interface-id;
           leaf interface-id {
             type if:interface-ref;
           }
           container ingress {
             uses interface-acl;
           }
           container egress {
             uses interface-acl;
           }
         }
       }
     }
     
    The schema path to identify an instance is ietf-access-control-list/acls

    To create instances of this class use AclsBuilder.

    See Also:
    AclsBuilder
    • Field Detail

      • QNAME

        static final @NonNull QName QNAME
    • Method Detail

      • bindingHashCode

        static int bindingHashCode​(@NonNull Acls obj)
        Default implementation of Object.hashCode() contract for this interface. Implementations of this interface are encouraged to defer to this method to get consistent hashing results across all implementations.
        Parameters:
        obj - Object for which to generate hashCode() result.
        Returns:
        Hash code value of data modeled by this interface.
        Throws:
        NullPointerException - if obj is null
      • bindingEquals

        static boolean bindingEquals​(@NonNull Acls thisObj,
                                     Object obj)
        Default implementation of Object.equals(Object) contract for this interface. Implementations of this interface are encouraged to defer to this method to get consistent equality results across all implementations.
        Parameters:
        thisObj - Object acting as the receiver of equals invocation
        obj - Object acting as argument to equals invocation
        Returns:
        True if thisObj and obj are considered equal
        Throws:
        NullPointerException - if thisObj is null
      • bindingToString

        static String bindingToString​(@NonNull Acls obj)
        Default implementation of Object.toString() contract for this interface. Implementations of this interface are encouraged to defer to this method to get consistent string representations across all implementations.
        Parameters:
        obj - Object for which to generate toString() result.
        Returns:
        String value of data modeled by this interface.
        Throws:
        NullPointerException - if obj is null
      • getAcl

        @Nullable Map<AclKey,​Acl> getAcl()
        Return acl, or null if it is not present.
             
                 An ACL is an ordered list of ACEs. Each ACE has a list of match criteria and a
                 list of actions. Since there are several kinds of ACLs implemented with
                 different attributes for different vendors, this model accommodates customizing
                 ACLs for each kind and for each vendor.
             
         
        Returns:
        Map<AclKey, Acl> acl, or null if it is not present.
      • nonnullAcl

        default @NonNull Map<AclKey,​Acl> nonnullAcl()
        Return acl, or an empty list if it is not present.
        Returns:
        Map<AclKey, Acl> acl, or an empty list if it is not present.
      • getAttachmentPoints

        AttachmentPoints getAttachmentPoints()
        Return attachmentPoints, or null if it is not present.
             
                 Enclosing container for the list of attachment points on which ACLs are set.
             
         
        Returns:
        AttachmentPoints attachmentPoints, or null if it is not present.