/// <summary>
 /// 重新执行失败的日志投递任务。
 /// </summary>
 /// <param name="client">client实例。</param>
 /// <param name="logstoreName">日志库名称,同一 Project 下唯一。</param>
 /// <param name="shipperName">日志投递规则名称,同一 Logstore 下唯一。</param>
 /// <param name="taskIds">需要重试的任务ID。</param>
 /// <param name="project">项目名,此参数将覆盖 client 中默认设置。</param>
 /// <returns>异步响应结果。</returns>
 /// <seealso cref="ILogServiceClient.RetryShipperTaskAsync"/>
 public static Task <IResponse> RetryShipperTaskAsync(this ILogServiceClient client,
                                                      String logstoreName, String shipperName, IEnumerable <String> taskIds,
                                                      String project = null)
 => client.RetryShipperTaskAsync(new RetryShipperRequest(logstoreName, shipperName, taskIds)
 {
     ProjectName = project
 });
 /// <summary>
 /// 重新执行失败的日志投递任务。
 /// </summary>
 /// <param name="client">client实例。</param>
 /// <param name="logstoreName">日志库名称,同一 Project 下唯一。</param>
 /// <param name="shipperName">日志投递规则名称,同一 Logstore 下唯一。</param>
 /// <param name="taskIds">需要重试的任务ID。</param>
 /// <returns>异步响应结果。</returns>
 /// <seealso cref="ILogServiceClient.RetryShipperTaskAsync"/>
 /// <remarks>
 /// 由于此方法存在变长参数,不支持使用可选参数覆盖 project,需要覆盖 project参数请使用
 /// <see cref="RetryShipperTaskAsync(Aliyun.Api.LogService.ILogServiceClient,string,string,System.Collections.Generic.IEnumerable{string},string)"/> 版本。
 /// </remarks>
 public static Task <IResponse> RetryShipperTaskAsync(this ILogServiceClient client,
                                                      String logstoreName, String shipperName, params String[] taskIds)
 => client.RetryShipperTaskAsync(new RetryShipperRequest(logstoreName, shipperName, taskIds));