<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def network_create(auth=None, **kwargs):
    '''
    Create a network

    name
        Name of the network being created

    shared : False
        If ``True``, set the network as shared

    admin_state_up : True
        If ``True``, Set the network administrative state to "up"

    external : False
        Control whether or not this network is externally accessible

    provider
        An optional Python dictionary of network provider options

    project_id
        The project ID on which this network will be created

    CLI Example:

    .. code-block:: bash

        salt '*' neutronng.network_create name=network2 \
          shared=True admin_state_up=True external=True

        salt '*' neutronng.network_create name=network3 \
          provider='{"network_type": "vlan",\
                     "segmentation_id": "4010",\
                     "physical_network": "provider"}' \
          project_id=1dcac318a83b4610b7a7f7ba01465548

    '''
    cloud = get_operator_cloud(auth)
    kwargs = _clean_kwargs(keep_name=True, **kwargs)
    return cloud.create_network(**kwargs)