async def _update_param(self, env: data.Environment, name: str, value: str, source: str, resource_id: str, metadata: JsonType, recompile: bool=False) -> bool:
    '\n        Update or set a parameter.\n\n        This method returns true if:\n        - this update resolves an unknown\n        - recompile is true and the parameter updates an existing parameter to a new value\n        '
    LOGGER.debug('Updating/setting parameter %s in env %s (for resource %s)', name, env.id, resource_id)
    if (not isinstance(value, str)):
        value = str(value)
    if (resource_id is None):
        resource_id = ''
    params = (await data.Parameter.get_list(environment=env.id, name=name, resource_id=resource_id))
    value_updated = True
    if (len(params) == 0):
        param = data.Parameter(environment=env.id, name=name, resource_id=resource_id, value=value, source=source, updated=datetime.datetime.now().astimezone(), metadata=metadata)
        (await param.insert())
    else:
        param = params[0]
        value_updated = (param.value != value)
        (await param.update(source=source, value=value, updated=datetime.datetime.now().astimezone(), metadata=metadata))
    unknown_params = (await data.UnknownParameter.get_list(environment=env.id, name=name, resource_id=resource_id, resolved=False))
    if (len(unknown_params) > 0):
        LOGGER.info('Received values for unknown parameters %s, triggering a recompile', ', '.join([x.name for x in unknown_params]))
        for p in unknown_params:
            (await p.update_fields(resolved=True))
        return True
    return (recompile and value_updated)
Update or set a parameter.

This method returns true if:
- this update resolves an unknown
- recompile is true and the parameter updates an existing parameter to a new value
async def _update_param(self, env: data.Environment, name: str, value: str, source: str, resource_id: str, metadata: JsonType, recompile: bool=False) -> bool:
    '\n        Update or set a parameter.\n\n        This method returns true if:\n        - this update resolves an unknown\n        - recompile is true and the parameter updates an existing parameter to a new value\n        '
    LOGGER.debug('Updating/setting parameter %s in env %s (for resource %s)', name, env.id, resource_id)
    if (not isinstance(value, str)):
        value = str(value)
    if (resource_id is None):
        resource_id = 
    params = (await data.Parameter.get_list(environment=env.id, name=name, resource_id=resource_id))
    value_updated = True
    if (len(params) == 0):
        param = data.Parameter(environment=env.id, name=name, resource_id=resource_id, value=value, source=source, updated=datetime.datetime.now().astimezone(), metadata=metadata)
        (await param.insert())
    else:
        param = params[0]
        value_updated = (param.value != value)
        (await param.update(source=source, value=value, updated=datetime.datetime.now().astimezone(), metadata=metadata))
    unknown_params = (await data.UnknownParameter.get_list(environment=env.id, name=name, resource_id=resource_id, resolved=False))
    if (len(unknown_params) > 0):
        LOGGER.info('Received values for unknown parameters %s, triggering a recompile', ', '.join([x.name for x in unknown_params]))
        for p in unknown_params:
            (await p.update_fields(resolved=True))
        return True
    return (recompile and value_updated)