def METHOD_NAME(conn, module):
    broker_id = module.params["broker_id"]
    broker_info = get_broker_info(conn, module)
    changed = False
    if module.check_mode and "Configurations" not in broker_info:
        # not result from get_broker_info(). use requeste config
        current_cfg_decoded = module.params["config_xml"]
    else:
        current_cfg = broker_info["Configurations"]["Current"]
        if "Pending" in broker_info["Configurations"]:
            current_cfg = broker_info["Configurations"]["Pending"]
        current_cfg_encoded = get_current_configuration(conn, module, current_cfg["Id"], current_cfg["Revision"])[
            "Data"
        ]
        current_cfg_decoded = base64.b64decode(current_cfg_encoded.encode()).decode()
    if is_same_config(current_cfg_decoded, module.params["config_xml"]):
        return {"changed": changed, "broker": camel_dict_to_snake_dict(broker_info, ignore_list=["Tags"])}
    (c_response, _b_response) = (None, None)
    if not module.check_mode:
        new_cfg_encoded = base64.b64encode(module.params["config_xml"].encode()).decode()
        (c_response, _b_response) = create_and_assign_config(
            conn, module, broker_id, current_cfg["Id"], new_cfg_encoded
        )
    #
    changed = True
    if changed and module.params["reboot"] and not module.check_mode:
        reboot_broker(conn, module, broker_id)
    #
    broker_info = get_broker_info(conn, module)
    return_struct = {
        "changed": changed,
        "broker": camel_dict_to_snake_dict(broker_info, ignore_list=["Tags"]),
        "configuration": {"id": c_response["Id"], "revision": c_response["LatestRevision"]["Revision"]},
    }
    if FULL_DEBUG:
        return_struct["old_config_xml"] = base64.b64decode(current_cfg_encoded)
        return_struct["new_config_xml"] = module.params["config_xml"]
        return_struct["old_config_revision"] = current_cfg["Revision"]
    return return_struct