'Deploy a new VLAN to a network domain
:param      network_domain: The network domain to add the VLAN to
:type       network_domain: :class:`DimensionDataNetworkDomain`
:param      name: The name of the VLAN to create
:type       name: ``str``
:param      private_ipv4_base_address: The base IPv4 address
e.g. 192.168.1.0
:type       private_ipv4_base_address: ``str``
:param      description: An additional description of the VLAN
:type       description: ``str``
:param      private_ipv4_prefix_size: The size of the IPv4
address space, e.g 24
:type       private_ipv4_prefix_size: ``int``
:return: an instance of `DimensionDataVlan`
:rtype: :class:`DimensionDataVlan`'

def ex_create_vlan(self, network_domain, name, private_ipv4_base_address, description=None, private_ipv4_prefix_size=24):

    create_node = ET.Element('deployVlan', {'xmlns': TYPES_URN})
    ET.SubElement(create_node, 'networkDomainId').text = network_domain.id
    ET.SubElement(create_node, 'name').text = name
    if (description is not None):
        ET.SubElement(create_node, 'description').text = description
    ET.SubElement(create_node, 'privateIpv4BaseAddress').text = private_ipv4_base_address
    ET.SubElement(create_node, 'privateIpv4PrefixSize').text = str(private_ipv4_prefix_size)
    response = self.connection.request_with_orgId_api_2('network/deployVlan', method='POST', data=ET.tostring(create_node)).object
    vlan_id = None
    for info in findall(response, 'info', TYPES_URN):
        if (info.get('name') == 'vlanId'):
            vlan_id = info.get('value')
    return self.ex_get_vlan(vlan_id)
