def generate_dns_record_parameters(domain_name=None, record_type=None, host='',
                                   record=None, ttl=None,
                                   validate_record_as='valid', **kwargs):
    """Generates parameters for a generic DNS record.

    :param domain_name: string, (required) the domain name to use for the
        record
    :param record_type: string, the type of domain to create
    :param host: string, the host for this record. Use '' (empty string) for
        top-level domain
    :param record: string, (required) the record to be added or updated
    :param ttl: int, (required) the time-to-live for this record
    :param validate_record_as: string, what to validate the record parameter
        as
    """
    params = {
        'domain-name':     domain_name,
        'host': {
            'value':       host,
            'optional':    True
        },
        'ttl':             ttl,
        'record': {
            'value':       record,
            'validate_as': validate_record_as
        }
    }

    if record_type:
        params['record-type'] = record_type

    return params