human
I wrote the below code

    def update(obj, prop, value, nullable=False):
        set_value = (value if (value is not None) else getattr(obj, prop, None))
        if ((set_value is None) and (not nullable)):
            raise CLIError("property    '{}'    cannot    be    cleared".format(prop))
        elif ((not set_value) and nullable):
            set_value = None
        setattr(obj, prop, set_value)
    issuer = client.get_certificate_issuer(vault_base_url, issuer_name)
    update(issuer.credentials, 'account_id', account_id, True)
    update(issuer.credentials, 'password', password, True)
    update(issuer.attributes, 'enabled', enabled)
    update(issuer.organization_details, 'id', organization_id, True)
    update(issuer, 'provider', provider_name)
    return client.set_certificate_issuer(vault_base_url, issuer_name, issuer.provider, issuer.credentials, issuer.organization_details, issuer.attributes)

What's a good function header?
 Here's a good function header?
assistant
#Here's a good function header.

def update_certificate_issuer(client, vault_base_url, issuer_name, provider_name=None, account_id=None, password=None, enabled=None, organization_id=None):