'Recursively convert ansible params to GCP Params.
Keys are converted from snake to camelCase
ex: default_service to defaultService
Handles lists, dicts and strings
special provision for the resource name'

@staticmethod
def params_to_gcp_dict(params, resource_name=None):

    if (not isinstance(params, dict)):
        return params
    gcp_dict = {}
    params = GCPUtils.remove_non_gcp_params(params)
    for (k, v) in params.items():
        gcp_key = GCPUtils.underscore_to_camel(k)
        if isinstance(v, dict):
            retval = GCPUtils.params_to_gcp_dict(v)
            gcp_dict[gcp_key] = retval
        elif isinstance(v, list):
            gcp_dict[gcp_key] = [GCPUtils.params_to_gcp_dict(x) for x in v]
        elif (resource_name and (k == resource_name)):
            gcp_dict['name'] = v
        else:
            gcp_dict[gcp_key] = v
    return gcp_dict
