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); }