def _validate_data(data):
    """Validates the given data and raises an error if any non-allowed keys are
    provided or any required keys are missing.

    :param data: Data to send to API
    :type data: dict
    """
    data_keys = set(data.keys())
    extra_keys = data_keys - set(ALLOWED_KEYS)
    missing_keys = set(REQUIRED_KEYS) - data_keys

    if extra_keys:
        raise ValueError(
            'Invalid data keys {!r}'.format(', '.join(extra_keys))
        )

    if missing_keys:
        raise ValueError(
            'Missing keys {!r}'.format(', '.join(missing_keys))
        )
Validates the given data and raises an error if any non-allowed keys are
    provided or any required keys are missing.

    :param data: Data to send to API
    :type data: dict