def METHOD_NAME(
    login_manager: LoginManager,
    *,
    flow_id: uuid.UUID,
    title: str | None,
    definition: ParsedJSONData | None,
    input_schema: ParsedJSONData | None,
    subtitle: str | None,
    description: str | None,
    owner: str | None,
    administrators: list[str] | None,
    starters: list[str] | None,
    viewers: list[str] | None,
    keywords: list[str] | None,
) -> None:
    """
    Update a flow.
    """
    # Ensure that the definition is a JSON object (if provided)
    definition_doc: dict[str, JsonValue] | None = None
    if definition is not None:
        if not isinstance(definition.data, dict):
            raise click.UsageError("Flow definition must be a JSON object")
        definition_doc = definition.data
    # Ensure the input schema is a JSON object (if provided)
    input_schema_doc: dict[str, JsonValue] | None = None
    if input_schema is not None:
        if not isinstance(input_schema.data, dict):
            raise click.UsageError("--input-schema must be a JSON object")
        input_schema_doc = input_schema.data
    # Configure clients
    flows_client = login_manager.get_flows_client()
    auth_client = login_manager.get_auth_client()
    res = flows_client.update_flow(
        flow_id,
        title=title,
        definition=definition_doc,
        input_schema=input_schema_doc,
        subtitle=subtitle,
        description=description,
        flow_owner=owner,
        flow_administrators=administrators,
        flow_starters=starters,
        flow_viewers=viewers,
        keywords=keywords,
    )
    # Configure formatters for principals
    principal_formatter = formatters.auth.PrincipalURNFormatter(auth_client)
    for principal_set_name in ("flow_administrators", "flow_viewers", "flow_starters"):
        for value in res.get(principal_set_name, ()):
            principal_formatter.add_item(value)
    principal_formatter.add_item(res.get("flow_owner"))
    fields = [
        Field("Flow ID", "id"),
        Field("Title", "title"),
        Field("Subtitle", "subtitle"),
        Field("Description", "description"),
        Field("Keywords", "keywords", formatter=formatters.ArrayFormatter()),
        Field("Owner", "flow_owner", formatter=principal_formatter),
        Field("Created At", "created_at", formatter=formatters.Date),
        Field("Updated At", "updated_at", formatter=formatters.Date),
        Field(
            "Administrators",
            "flow_administrators",
            formatter=formatters.ArrayFormatter(element_formatter=principal_formatter),
        ),
        Field(
            "Viewers",
            "flow_viewers",
            formatter=formatters.ArrayFormatter(element_formatter=principal_formatter),
        ),
        Field(
            "Starters",
            "flow_starters",
            formatter=formatters.ArrayFormatter(element_formatter=principal_formatter),
        ),
    ]
    display(res, fields=fields, text_mode=TextMode.text_record)