///<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 & 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 & 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));