///<summary>POST on /_snapshot/{repository}/{snapshot}/_restore <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html</para></summary>
 ///<param name = "repository">A repository name</param>
 ///<param name = "snapshot">A snapshot name</param>
 ///<param name = "body">Details of what to restore</param>
 ///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
 public Task <TResponse> RestoreAsync <TResponse>(string repository, string snapshot, PostData body, RestoreRequestParameters requestParameters = null, CancellationToken ctx = default)
     where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync <TResponse>(POST, Url($"_snapshot/{repository:repository}/{snapshot:snapshot}/_restore"), ctx, body, RequestParams(requestParameters));
 ///<summary>POST on /_snapshot/{repository}/{snapshot}/_restore <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html</para></summary>
 ///<param name = "repository">A repository name</param>
 ///<param name = "snapshot">A snapshot name</param>
 ///<param name = "body">Details of what to restore</param>
 ///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
 public TResponse Restore <TResponse>(string repository, string snapshot, PostData body, RestoreRequestParameters requestParameters = null)
     where TResponse : class, IElasticsearchResponse, new() => DoRequest <TResponse>(POST, Url($"_snapshot/{repository:repository}/{snapshot:snapshot}/_restore"), body, RequestParams(requestParameters));