def METHOD_NAME(
    cfg_element: model.btp_service_binding.BtpServiceBinding,
    cfg_factory: model.ConfigFactory,
) -> typing.Tuple[cfg_mgmt.revert_function, dict, model.NamedModelElement]:
    old_binding_id = cfg_element.binding_id()
    old_binding_name = cfg_element.binding_name()
    client = _authenticate(cfg_element, cfg_factory)
    bindings = client.get_service_bindings()
    prefix = cfg_element.prefix()
    instance_id = cfg_element.instance_id()
    next_sn = _find_next_service_binding_serial_number(bindings, prefix, instance_id)
    binding_name = f'{prefix}{next_sn}'
    created_binding = client.create_service_binding(instance_id, binding_name)
    secret_id = {'binding_id': old_binding_id, 'binding_name': old_binding_name}
    raw_cfg = copy.deepcopy(cfg_element.raw)
    raw_cfg['credentials'] = created_binding.credentials
    raw_cfg['binding_id'] = created_binding.id
    raw_cfg['binding_name'] = binding_name
    updated_elem = model.btp_service_binding.BtpServiceBinding(
        name=cfg_element.name(), raw_dict=raw_cfg, type_name=cfg_element._type_name
    )
    def revert():
        client.delete_service_binding(binding_name, id)
    return revert, secret_id, updated_elem