public async Task SaveOneDriveDocumentToFileAsync(string targetFilePath,
                                                          string restoreSessionId,
                                                          string oneDriveId,
                                                          string oneDriveDocumentId,
                                                          bool?asZip           = null,
                                                          CancellationToken ct = default)
        {
            ParameterValidator.ValidateNotNull(targetFilePath, nameof(targetFilePath));
            ParameterValidator.ValidateNotNull(restoreSessionId, nameof(restoreSessionId));
            ParameterValidator.ValidateNotNull(oneDriveId, nameof(oneDriveId));
            ParameterValidator.ValidateNotNull(oneDriveDocumentId, nameof(oneDriveDocumentId));

            var bodyParameters = new BodyParameters();

            if (asZip != null)
            {
                bodyParameters.AddMandatoryParameter("save", new { asZip = asZip.ToString() });
            }
            else
            {
                bodyParameters.AddNullParameter("save");
            }

            var url = $"restoresessions/{restoreSessionId}/organization/onedrives/{oneDriveId}/documents/{oneDriveDocumentId}/action";
            await _baseClient.DownloadToFilePostAsync(targetFilePath, url, bodyParameters, ct);
        }