'Creates a new Event Hub.
hub_name:
Name of event hub.
hub:
Optional. Event hub properties. Instance of EventHub class.
hub.message_retention_in_days:
Number of days to retain the events for this Event Hub.
hub.status: Status of the Event Hub (enabled or disabled).
hub.user_metadata: User metadata.
hub.partition_count: Number of shards on the Event Hub.
fail_on_exist:
Specify whether to throw an exception when the event hub exists.'

def create_event_hub(self, hub_name, hub=None, fail_on_exist=False):

    _validate_not_none('hub_name', hub_name)
    request = HTTPRequest()
    request.method = 'PUT'
    request.host = self._get_host()
    request.path = (('/' + _str(hub_name)) + '?api-version=2014-01')
    request.body = _get_request_body(_convert_event_hub_to_xml(hub))
    (request.path, request.query) = self._httpclient._update_request_uri_query(request)
    request.headers = self._update_service_bus_header(request)
    if (not fail_on_exist):
        try:
            self._perform_request(request)
            return True
        except AzureHttpError as ex:
            _dont_fail_on_exist(ex)
            return False
    else:
        self._perform_request(request)
        return True
