Create a check on a given URL.

    Additional parameters can be used and are passed to API (for
    example interval, maxTime, etc). See the documentation
    https://github.com/fzaninotto/uptime for a full list of the
    parameters.

    CLI Example:

    .. code-block:: bash

        salt '*' uptime.create http://example.org

def create(name, **params):
    '''Create a check on a given URL.

    Additional parameters can be used and are passed to API (for
    example interval, maxTime, etc). See the documentation
    https://github.com/fzaninotto/uptime for a full list of the
    parameters.

    CLI Example:

    .. code-block:: bash

        salt '*' uptime.create http://example.org

    '''
    if check_exists(name):
        msg = 'Trying to create check that already exists : {0}'.format(name)
        log.error(msg)
        raise CommandExecutionError(msg)
    application_url = _get_application_url()
    log.debug('[uptime] trying PUT request')
    params.update(url=name)
    req = requests.put('{0}/api/checks'.format(application_url), data=params)
    if not req.ok:
        raise CommandExecutionError(
            'request to uptime failed : {0}'.format(req.reason)
        )
    log.debug('[uptime] PUT request successful')
    return req.json()['_id']