def METHOD_NAME(client, account_name, resource_group_name, filter_name, start_timestamp=None,
                          end_timestamp=None, presentation_window_duration=None, live_backoff_duration=None,
                          timescale=None, force_end_timestamp=False, bitrate=None, first_quality=None, tracks=None):
    presentation_time_range = None
    if first_quality or bitrate:
        first_quality = FirstQuality(bitrate=first_quality or bitrate)
    if any([start_timestamp, end_timestamp, presentation_window_duration,
            live_backoff_duration, timescale]):
        presentation_time_range = PresentationTimeRange(
            start_timestamp=start_timestamp,
            end_timestamp=end_timestamp,
            presentation_window_duration=presentation_window_duration,
            live_backoff_duration=live_backoff_duration,
            timescale=timescale,
            force_end_timestamp=force_end_timestamp
        )
    account_filter = AccountFilter(tracks=_parse_filter_tracks_json(tracks),
                                   presentation_time_range=presentation_time_range,
                                   first_quality=first_quality)
    return client.create_or_update(resource_group_name, account_name, filter_name,
                                   account_filter)