def get_vlan(self, *args, **kwargs):
        """
        Get the VLAN from this PhysicalInterface.
        Use args if you want to specify only the VLAN id. Otherwise
        you can specify a valid attribute for the VLAN sub interface
        such as `address` for example::
        
            >>> vlan = itf.vlan_interface.get_vlan(4)
            >>> vlan
            Layer3PhysicalInterfaceVlan(name=VLAN 3.4)
            >>> vlan.addresses
            [(u'32.32.32.36', u'32.32.32.0/24', u'3.4'), (u'32.32.32.33', u'32.32.32.0/24', u'3.4')]
        
        :param int args: args are translated to vlan_id=args[0]
        :param kwargs: key value for sub interface
        :raises InterfaceNotFound: VLAN interface could not be found
        :rtype: VlanInterface
        """
        if args:
            kwargs = {'vlan_id': str(args[0])}
        key, value = kwargs.popitem()
        for vlan in self:
            if getattr(vlan, key, None) == value:
                return vlan
        raise InterfaceNotFound('VLAN ID {} was not found on this engine.'
            .format(value))
Get the VLAN from this PhysicalInterface.
        Use args if you want to specify only the VLAN id. Otherwise
        you can specify a valid attribute for the VLAN sub interface
        such as `address` for example::
        
            >>> vlan = itf.vlan_interface.get_vlan(4)
            >>> vlan
            Layer3PhysicalInterfaceVlan(name=VLAN 3.4)
            >>> vlan.addresses
            [(u'32.32.32.36', u'32.32.32.0/24', u'3.4'), (u'32.32.32.33', u'32.32.32.0/24', u'3.4')]
        
        :param int args: args are translated to vlan_id=args[0]
        :param kwargs: key value for sub interface
        :raises InterfaceNotFound: VLAN interface could not be found
        :rtype: VlanInterface